From 3f7fbc6c49e50eb22e3de8a5143817fa7c0c54dd Mon Sep 17 00:00:00 2001 From: "Santiago M. Mola" Date: Thu, 3 Nov 2016 17:10:43 +0100 Subject: storage/filesystem: implement missing functionality. (#110) * storage/filesystem: added ObjectStorage Set. * storage/filesystem: now passes all tests, except those specific to transactions. * formats/config: Encoder now encodes subsections with no options. * formats/config: add HasSubsection on Section. * dotgit: add Ref method to get specific reference. --- storage/filesystem/reference.go | 40 ++++------------------------------------ 1 file changed, 4 insertions(+), 36 deletions(-) (limited to 'storage/filesystem/reference.go') diff --git a/storage/filesystem/reference.go b/storage/filesystem/reference.go index ae78efb..b2aa6d9 100644 --- a/storage/filesystem/reference.go +++ b/storage/filesystem/reference.go @@ -6,8 +6,7 @@ import ( ) type ReferenceStorage struct { - dir *dotgit.DotGit - refs map[core.ReferenceName]*core.Reference + dir *dotgit.DotGit } func (r *ReferenceStorage) Set(ref *core.Reference) error { @@ -15,45 +14,14 @@ func (r *ReferenceStorage) Set(ref *core.Reference) error { } func (r *ReferenceStorage) Get(n core.ReferenceName) (*core.Reference, error) { - if err := r.load(); err != nil { - return nil, err - } - - ref, ok := r.refs[n] - if !ok { - return nil, core.ErrReferenceNotFound - } - - return ref, nil + return r.dir.Ref(n) } func (r *ReferenceStorage) Iter() (core.ReferenceIter, error) { - if err := r.load(); err != nil { - return nil, err - } - - var refs []*core.Reference - for _, ref := range r.refs { - refs = append(refs, ref) - } - - return core.NewReferenceSliceIter(refs), nil -} - -func (r *ReferenceStorage) load() error { - if len(r.refs) != 0 { - return nil - } - refs, err := r.dir.Refs() if err != nil { - return err - } - - r.refs = make(map[core.ReferenceName]*core.Reference, 0) - for _, ref := range refs { - r.refs[ref.Name()] = ref + return nil, err } - return nil + return core.NewReferenceSliceIter(refs), nil } -- cgit