diff options
Diffstat (limited to 'vendor/github.com/bennyscetbun/jsongo/print.go')
-rw-r--r-- | vendor/github.com/bennyscetbun/jsongo/print.go | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/vendor/github.com/bennyscetbun/jsongo/print.go b/vendor/github.com/bennyscetbun/jsongo/print.go deleted file mode 100644 index 6869918..0000000 --- a/vendor/github.com/bennyscetbun/jsongo/print.go +++ /dev/null @@ -1,74 +0,0 @@ -package jsongo - -import ( - "fmt" - "regexp" - "strings" -) - -//Thanks https://github.com/chuckpreslar/inflect for the UpperCamelCase - -// Split's a string so that it can be converted to a different casing. -// Splits on underscores, hyphens, spaces and camel casing. -func split(str string) []string { - // FIXME: This isn't a perfect solution. - // ex. WEiRD CaSINg (Support for 13 year old developers) - return strings.Split(regexp.MustCompile(`-|_|([a-z])([A-Z])`).ReplaceAllString(strings.Trim(str, `-|_| `), `$1 $2`), ` `) -} - -// UpperCamelCase converts a string to it's upper camel case version. -func UpperCamelCase(str string) string { - pieces := split(str) - - for index, s := range pieces { - pieces[index] = fmt.Sprintf(`%v%v`, strings.ToUpper(string(s[0])), strings.ToLower(s[1:])) - } - - return strings.Join(pieces, ``) -} - -func (that *JSONNode) printValue(indentlevel int, indentchar string) { - fmt.Printf(" %T ", that.Get()) -} - -func (that *JSONNode) printMap(indentlevel int, indentchar string) { - fmt.Printf(" struct {\n") - for key := range that.m { - printfindent(indentlevel+1, indentchar, "%s", UpperCamelCase(key)) - that.m[key].print(indentlevel+1, indentchar) - fmt.Printf(" `json:\"%s\"`\n", key) - } - printfindent(indentlevel, indentchar, "}") -} - -func (that *JSONNode) printArray(indentlevel int, indentchar string) { - if len(that.a) == 0 { - fmt.Printf(" []interface{} ") - return - } - fmt.Printf(" [] ") - for key := range that.a { - that.a[key].print(indentlevel+1, indentchar) - break - } -} - -//DebugProspect Print all the data the we ve got on a node and all it s children -func (that *JSONNode) print(indentlevel int, indentchar string) { - switch that.t { - case TypeValue: - that.printValue(indentlevel, indentchar) - case TypeMap: - that.printMap(indentlevel, indentchar) - case TypeArray: - that.printArray(indentlevel, indentchar) - case TypeUndefined: - printfindent(indentlevel, indentchar, "Is of Type: TypeUndefined\n") - } -} - -//Print Print all the data the we ve got on a node and all it s children as a go struct :) (FOR DEV PURPOSE) -func (that *JSONNode) Print() { - that.print(0, "\t") - fmt.Printf("\n") -} |