diff options
Diffstat (limited to 'sort.go')
| -rw-r--r-- | sort.go | 75 |
1 files changed, 42 insertions, 33 deletions
@@ -35,75 +35,84 @@ func (pb *Files) makeNewSortfile(pf *File) error { pf.selectAllFunc(wSort) pf.iterSelect(wSort) - pf.appendUnique(wFind) // Append() enforce no unique keys pf.sortByFunc(wSort) - if argv.Delete { - pf.deleteWithCopyFunc(wFind) - } else { - pf.deleteFunc(wFind) - } - pf.findFunc(wFind) + + /* + pf.appendUnique(wFind) // Append() enforce no unique keys + if argv.Delete { + pf.deleteWithCopyFunc(wFind) + } else { + pf.deleteFunc(wFind) + } + pf.findFunc(wFind) + */ // attempt to add sort functions for pf.Base pf.processMessage(pf.Bases, wSort, wFind) - // pf.processMessage(pf.Base, wSort, wFind) + pf.processMessage(pf.Base, wSort, wFind) return nil } func (pf *File) processMessage(msg *MsgName, wSort, wFind io.Writer) error { - log.Printf("Generating functions for %s\n", msg.Name) + var FRUIT string = cases.Title(language.English, cases.NoLower).String(msg.Name) + log.Printf("Generating functions for %s\n", FRUIT) for _, v := range msg.Vars { if !v.IsRepeated { log.Printf("\tSKIP %s %s\n", v.VarName, v.VarType) continue } - if err := pf.addSortByMsg(msg, v, wSort, wFind); err != nil { - return err + // use easier to read variable names APPLE and APPLES in the code + var APPLE string = v.VarType + var APPLES string = cases.Title(language.English, cases.NoLower).String(v.VarName) + + // try and find the message struct for APPLE + var found *MsgName + for _, m := range pf.MsgNames { + if m.Name == APPLE { + found = m + break + } + } + if found == nil { + return fmt.Errorf("failed to find struct %s", APPLE) } + + found.addSortByMsg(FRUIT, APPLES, APPLE, wSort, wFind) } return nil } -func (pf *File) addSortByMsg(parent *MsgName, find *MsgVar, wSort, wFind io.Writer) error { - log.Printf("\tLOOK HERE: %s %s\n", find.VarName, find.VarType) - var found *MsgName - for _, msg := range pf.MsgNames { - if msg.Name == find.VarType { - found = msg - break - } - } - if found == nil { - return fmt.Errorf("failed to find struct %s", find.VarType) - } - log.Printf("FOUND!: %s %s for %s\n", find.VarName, find.VarType, found.Name) +func (parent *MsgName) addSortByMsg(FRUIT, APPLES, APPLE string, wSort, wFind io.Writer) error { + log.Printf("\tFOUND!: %s %s for %s\n", APPLES, APPLE, FRUIT) var COLORS []string - var FRUIT string = parent.Name - var APPLES string = cases.Title(language.English, cases.NoLower).String(find.VarName) - var APPLE string = find.VarType - for _, v := range found.Vars { + for _, v := range parent.Vars { if v.HasSort { - // log.Printf("\tSort!: %s %s for %s\n", find.VarName, find.VarType, v.VarName) + // log.Printf("\tSort!: %s %s for %s\n", APPLES, APPLE, v.VarName) newS := cases.Title(language.English, cases.NoLower).String(v.VarName) - log.Printf("\t(x %s) SortdBy%s() *%sIter\n", parent.Name, newS, find.VarType) + log.Printf("\t(x %s) SortdBy%s() *%sIter\n", parent.Name, newS, APPLE) } if v.HasUnique { newS := cases.Title(language.English, cases.NoLower).String(v.VarName) var COLOR string = newS COLORS = append(COLORS, COLOR) - log.Printf("\t(x %s) AppendUniqueBy%s(%s)\n", parent.Name, newS, find.VarType) + log.Printf("\t(x %s) AppendUniqueBy%s(%s)\n", parent.Name, newS, APPLE) parent.appendUniqueBy(wFind, FRUIT, APPLES, APPLE, COLOR) if v.VarType == "string" { log.Printf("\t(x %s) FindBy%s(string) *%s\n", FRUIT, COLOR, APPLE) parent.findBy(wFind, FRUIT, APPLES, APPLE, COLOR) - log.Printf("\t(x %s) DeleteBy%s(string) *%s\n", parent.Name, newS, find.VarType) - parent.deleteBy(wFind, FRUIT, APPLES, APPLE, COLOR) + log.Printf("\t(x %s) DeleteBy%s(string) *%s\n", parent.Name, newS, APPLE) + if argv.Delete { + parent.deleteByWithCopy(wFind, FRUIT, APPLES, APPLE, COLOR) + } else { + parent.deleteBy(wFind, FRUIT, APPLES, APPLE, COLOR) + } } } } + parent.insertByColors(wFind, FRUIT, APPLES, APPLE, COLORS) if len(COLORS) > 0 { parent.appendUnique(wFind, FRUIT, APPLES, APPLE, COLORS) } |
