test coverage and linting

This commit is contained in:
Conor Nosal
2019-12-06 13:58:56 +11:00
committed by Mike Farah
parent 4b3fbb878f
commit 64d1e58f97
14 changed files with 115 additions and 47 deletions
+8 -8
View File
@@ -7,21 +7,21 @@ import (
type YqLib interface {
ReadPath(dataBucket interface{}, path string) (interface{}, error)
WritePath(dataBucket interface{}, path string, value interface{}) (interface{})
PrefixPath(dataBucket interface{}, prefix string) (interface{})
WritePath(dataBucket interface{}, path string, value interface{}) interface{}
PrefixPath(dataBucket interface{}, prefix string) interface{}
DeletePath(dataBucket interface{}, path string) (interface{}, error)
Merge(dst interface{}, src interface{}, overwrite bool, append bool) error
}
type lib struct {
navigator DataNavigator
parser PathParser
parser PathParser
}
func NewYqLib(l *logging.Logger) YqLib {
return &lib {
return &lib{
navigator: NewDataNavigator(l),
parser: NewPathParser(),
parser: NewPathParser(),
}
}
@@ -30,12 +30,12 @@ func (l *lib) ReadPath(dataBucket interface{}, path string) (interface{}, error)
return l.navigator.ReadChildValue(dataBucket, paths)
}
func (l *lib) WritePath(dataBucket interface{}, path string, value interface{}) (interface{}) {
func (l *lib) WritePath(dataBucket interface{}, path string, value interface{}) interface{} {
var paths = l.parser.ParsePath(path)
return l.navigator.UpdatedChildValue(dataBucket, paths, value)
}
func (l *lib) PrefixPath(dataBucket interface{}, prefix string) (interface{}) {
func (l *lib) PrefixPath(dataBucket interface{}, prefix string) interface{} {
var paths = l.parser.ParsePath(prefix)
// Inverse order
@@ -65,4 +65,4 @@ func (l *lib) Merge(dst interface{}, src interface{}, overwrite bool, append boo
return mergo.Merge(dst, src, mergo.WithAppendSlice)
}
return mergo.Merge(dst, src)
}
}