diff --git a/parser/frontmatter.go b/parser/frontmatter.go index 5ed3ec11d..c5aaf807a 100644 --- a/parser/frontmatter.go +++ b/parser/frontmatter.go @@ -209,7 +209,7 @@ func HandleYAMLMetaData(datum []byte) (map[string]interface{}, error) { // gotten from `json`. if err == nil { for k, v := range m { - m[k] = stringifyYAMLMapKeys(v) + m[k] = stringifyMapKeys(v) } } @@ -227,30 +227,30 @@ func HandleYAMLData(datum []byte) (interface{}, error) { // and change all maps to map[string]interface{} like we would've // gotten from `json`. if err == nil { - m = stringifyYAMLMapKeys(m) + m = stringifyMapKeys(m) } return m, err } -// stringifyKeysMapValue recurses into in and changes all instances of +// stringifyMapKeys recurses into in and changes all instances of // map[interface{}]interface{} to map[string]interface{}. This is useful to // work around the impedence mismatch between JSON and YAML unmarshaling that's // described here: https://github.com/go-yaml/yaml/issues/139 // // Inspired by https://github.com/stripe/stripe-mock, MIT licensed -func stringifyYAMLMapKeys(in interface{}) interface{} { +func stringifyMapKeys(in interface{}) interface{} { switch in := in.(type) { case []interface{}: res := make([]interface{}, len(in)) for i, v := range in { - res[i] = stringifyYAMLMapKeys(v) + res[i] = stringifyMapKeys(v) } return res case map[interface{}]interface{}: res := make(map[string]interface{}) for k, v := range in { - res[fmt.Sprintf("%v", k)] = stringifyYAMLMapKeys(v) + res[fmt.Sprintf("%v", k)] = stringifyMapKeys(v) } return res default: diff --git a/parser/frontmatter_test.go b/parser/frontmatter_test.go index 9ac974951..4d28facb2 100644 --- a/parser/frontmatter_test.go +++ b/parser/frontmatter_test.go @@ -353,7 +353,7 @@ func TestStringifyYAMLMapKeys(t *testing.T) { } for i, c := range cases { - res := stringifyYAMLMapKeys(c.input) + res := stringifyMapKeys(c.input) if !reflect.DeepEqual(res, c.want) { t.Errorf("[%d] given %q\nwant: %q\n got: %q", i, c.input, c.want, res) } @@ -387,7 +387,7 @@ func BenchmarkStringifyMapKeysStringsOnlyInterfaceMaps(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - stringifyYAMLMapKeys(maps[i]) + stringifyMapKeys(maps[i]) } } @@ -429,7 +429,7 @@ func BenchmarkStringifyMapKeysIntegers(b *testing.B) { } b.ResetTimer() for i := 0; i < b.N; i++ { - stringifyYAMLMapKeys(maps[i]) + stringifyMapKeys(maps[i]) } } func doBenchmarkFrontmatter(b *testing.B, fileformat string, numTags int) {