Fix #36 and reduce code repetitions

pull/48/head
Henrique Dias 2016-01-09 21:19:27 +00:00
parent b15b9b8b08
commit f66f5af562
1 changed files with 19 additions and 19 deletions

View File

@ -42,18 +42,21 @@ func rawToPretty(config interface{}, parent *frontmatter) interface{} {
arrays := []*frontmatter{} arrays := []*frontmatter{}
fields := []*frontmatter{} fields := []*frontmatter{}
if parent.Type == "array" { cnf := map[string]interface{}{}
for index, element := range config.([]interface{}) {
if utils.IsMap(element) { if reflect.TypeOf(config) == reflect.TypeOf(map[interface{}]interface{}{}) {
objects = append(objects, handleObjects(element, parent, string(index))) for key, value := range config.(map[interface{}]interface{}) {
} else if utils.IsSlice(element) { cnf[key.(string)] = value
arrays = append(arrays, handleArrays(element, parent, string(index))) }
} else if reflect.TypeOf(config) == reflect.TypeOf([]interface{}{}) {
for key, value := range config.([]interface{}) {
cnf[string(key)] = value
}
} else { } else {
fields = append(fields, handleFlatValues(element, parent, string(index))) cnf = config.(map[string]interface{})
} }
}
} else if parent.Type == "object" { for name, element := range cnf {
for name, element := range config.(map[string]interface{}) {
if utils.IsMap(element) { if utils.IsMap(element) {
objects = append(objects, handleObjects(element, parent, name)) objects = append(objects, handleObjects(element, parent, name))
} else if utils.IsSlice(element) { } else if utils.IsSlice(element) {
@ -62,9 +65,6 @@ func rawToPretty(config interface{}, parent *frontmatter) interface{} {
fields = append(fields, handleFlatValues(element, parent, name)) fields = append(fields, handleFlatValues(element, parent, name))
} }
} }
} else {
log.Panic("Parent type not allowed.")
}
sort.Sort(sortByTitle(objects)) sort.Sort(sortByTitle(objects))
sort.Sort(sortByTitle(arrays)) sort.Sort(sortByTitle(arrays))