From 8a627f7e67787c8ba9a61ffeb86678d9d8cb5ad1 Mon Sep 17 00:00:00 2001 From: Cameron Moore Date: Thu, 19 Mar 2015 12:15:37 -0500 Subject: [PATCH] Fix slice traversal in ExtractParameter With these changes, I'm able to pass tests "a.1.b" and "a.1.b.c". --- helpers/helpers.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helpers/helpers.go b/helpers/helpers.go index c5bbed7..9e5d88c 100644 --- a/helpers/helpers.go +++ b/helpers/helpers.go @@ -45,8 +45,8 @@ func ExtractParameter(s string, params interface{}) (string, bool) { if paramsValue := reflect.ValueOf(params); paramsValue.Kind() == reflect.Slice { if paramsValueSliceLength := paramsValue.Len(); paramsValueSliceLength > 0 { - if p := strings.SplitN(s, ".", 3); len(p) > 3 { - index, err := strconv.ParseInt(p[1], 10, 64) + if p := strings.SplitN(s, ".", 2); len(p) > 1 { + index, err := strconv.ParseInt(p[0], 10, 64) if err != nil { return "", false @@ -54,7 +54,7 @@ func ExtractParameter(s string, params interface{}) (string, bool) { return "", false } - return ExtractParameter(p[2], params.([]map[string]interface{})[index]) + return ExtractParameter(p[1], params.([]interface{})[index]) } }