Stop being a dummy reinventing the wheel and use template.IsTrue

This commit is contained in:
Tianon Gravi 2016-06-03 09:15:36 -07:00
parent 3db02d3b23
commit c98d0c2b3d
1 changed files with 3 additions and 19 deletions

View File

@ -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