|
|
|
@ -88,7 +88,7 @@ func (v Values) Encode(w io.Writer) error {
|
|
|
|
|
func tableLookup(v Values, simple string) (Values, error) {
|
|
|
|
|
v2, ok := v[simple]
|
|
|
|
|
if !ok {
|
|
|
|
|
return v, ErrNoTable(simple)
|
|
|
|
|
return v, ErrNoTable{simple}
|
|
|
|
|
}
|
|
|
|
|
if vv, ok := v2.(map[string]interface{}); ok {
|
|
|
|
|
return vv, nil
|
|
|
|
@ -101,7 +101,7 @@ func tableLookup(v Values, simple string) (Values, error) {
|
|
|
|
|
return vv, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Values{}, ErrNoTable(simple)
|
|
|
|
|
return Values{}, ErrNoTable{simple}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ReadValues will parse YAML byte data into a Values.
|
|
|
|
@ -193,20 +193,20 @@ func (v Values) pathValue(path []string) (interface{}, error) {
|
|
|
|
|
if _, ok := v[path[0]]; ok && !istable(v[path[0]]) {
|
|
|
|
|
return v[path[0]], nil
|
|
|
|
|
}
|
|
|
|
|
return nil, ErrNoValue(path[0])
|
|
|
|
|
return nil, ErrNoValue{path[0]}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
key, path := path[len(path)-1], path[:len(path)-1]
|
|
|
|
|
// get our table for table path
|
|
|
|
|
t, err := v.Table(joinPath(path...))
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, ErrNoValue(key)
|
|
|
|
|
return nil, ErrNoValue{key}
|
|
|
|
|
}
|
|
|
|
|
// check table for key and ensure value is not a table
|
|
|
|
|
if k, ok := t[key]; ok && !istable(k) {
|
|
|
|
|
return k, nil
|
|
|
|
|
}
|
|
|
|
|
return nil, ErrNoValue(key)
|
|
|
|
|
return nil, ErrNoValue{key}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func parsePath(key string) []string { return strings.Split(key, ".") }
|
|
|
|
|