From b905f5e56443ae5c561236f1083202041a96a5f1 Mon Sep 17 00:00:00 2001 From: Amir Abushareb Date: Sun, 12 Jun 2016 19:10:07 +0200 Subject: [PATCH] clean --- main.go | 44 +++++++++++++++++--------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/main.go b/main.go index d459ebe..caae20e 100644 --- a/main.go +++ b/main.go @@ -67,44 +67,25 @@ func inputs(f *ast.File) (ret []Value) { for _, n := range list.Items { if is(n.Keys, "variable") { name := n.Keys[1].Token.Text - vals := n.Val.(*ast.ObjectType) - - var defaultText string - var description string - - if items := vals.List.Items; len(items) > 0 { - for _, item := range items { - if is(item.Keys, "default") { - defaultText = item.Val.(*ast.LiteralType).Token.Text - break - } - - if is(item.Keys, "description") { - description = item.Val.(*ast.LiteralType).Token.Text - break - } - - if is(item.Keys, "value") { - description = item.Val.(*ast.LiteralType).Token.Text - break - } - } - } + items := n.Val.(*ast.ObjectType).List.Items ret = append(ret, Value{ Type: "variable", Name: clean(name), - Description: clean(description), - Default: defaultText, + Description: clean(get(items, "description")), + Default: get(items, "default"), }) continue } if is(n.Keys, "output") { name := n.Keys[1].Token.Text + items := n.Val.(*ast.ObjectType).List.Items + value := get(items, "value") ret = append(ret, Value{ - Type: "output", - Name: name[1 : len(name)-1], + Type: "output", + Name: clean(name), + Value: value, }) continue } @@ -113,6 +94,15 @@ func inputs(f *ast.File) (ret []Value) { return ret } +func get(items []*ast.ObjectItem, key string) string { + for _, item := range items { + if is(item.Keys, key) { + return item.Val.(*ast.LiteralType).Token.Text + } + } + return "" +} + func is(keys []*ast.ObjectKey, t string) bool { if len(keys) > 0 { return keys[0].Token.Text == t