Fix slice traversal in ExtractParameter

With these changes, I'm able to pass tests "a.1.b" and "a.1.b.c".
This commit is contained in:
Cameron Moore 2015-03-19 12:15:37 -05:00
parent 7635cfde33
commit 8a627f7e67

View file

@ -45,8 +45,8 @@ func ExtractParameter(s string, params interface{}) (string, bool) {
if paramsValue := reflect.ValueOf(params); paramsValue.Kind() == reflect.Slice { if paramsValue := reflect.ValueOf(params); paramsValue.Kind() == reflect.Slice {
if paramsValueSliceLength := paramsValue.Len(); paramsValueSliceLength > 0 { if paramsValueSliceLength := paramsValue.Len(); paramsValueSliceLength > 0 {
if p := strings.SplitN(s, ".", 3); len(p) > 3 { if p := strings.SplitN(s, ".", 2); len(p) > 1 {
index, err := strconv.ParseInt(p[1], 10, 64) index, err := strconv.ParseInt(p[0], 10, 64)
if err != nil { if err != nil {
return "", false return "", false
@ -54,7 +54,7 @@ func ExtractParameter(s string, params interface{}) (string, bool) {
return "", false return "", false
} }
return ExtractParameter(p[2], params.([]map[string]interface{})[index]) return ExtractParameter(p[1], params.([]interface{})[index])
} }
} }