From c98d0c2b3d3960ab825fbd001a408a63a82bef83 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Fri, 3 Jun 2016 09:15:36 -0700 Subject: [PATCH] Stop being a dummy reinventing the wheel and use template.IsTrue --- pkg/templatelib/lib.go | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/pkg/templatelib/lib.go b/pkg/templatelib/lib.go index d461412..98ac86d 100644 --- a/pkg/templatelib/lib.go +++ b/pkg/templatelib/lib.go @@ -74,25 +74,9 @@ var FuncMap = template.FuncMap{ "hasSuffix": swapStringsFuncBoolArgsOrder(strings.HasSuffix), "ternary": func(truthy interface{}, falsey interface{}, val interface{}) interface{} { - v := reflect.ValueOf(val) - - var t bool - switch v.Kind() { - case reflect.Bool: - t = v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - t = v.Int() != 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - t = v.Uint() != 0 - case reflect.Float32, reflect.Float64: - t = v.Float() != 0 - case reflect.String: - t = v.String() != "" - default: - t = !v.IsNil() - } - - if t { + if t, ok := template.IsTrue(val); !ok { + panic(fmt.Sprintf(`template.IsTrue(%+v) says things are NOT OK`, val)) + } else if t { return truthy } else { return falsey