Add time.Time support in ge, gt, le, lt

Fixes #1593
This commit is contained in:
Bjørn Erik Pedersen 2015-11-20 11:53:25 +01:00
parent 8d8fa7222f
commit 35abd179e2
2 changed files with 14 additions and 1 deletions

View file

@ -112,6 +112,11 @@ func compareGetFloat(a interface{}, b interface{}) (float64, float64) {
str := av.String()
leftStr = &str
}
case reflect.Struct:
switch av.Type() {
case timeType:
left = float64(timeUnix(av))
}
}
bv := reflect.ValueOf(b)
@ -129,7 +134,11 @@ func compareGetFloat(a interface{}, b interface{}) (float64, float64) {
str := bv.String()
rightStr = &str
}
case reflect.Struct:
switch bv.Type() {
case timeType:
right = float64(timeUnix(bv))
}
}
switch {

View file

@ -5,6 +5,7 @@ import (
"encoding/base64"
"errors"
"fmt"
"github.com/spf13/cast"
"html/template"
"path"
"reflect"
@ -81,6 +82,9 @@ func doTestCompare(t *testing.T, tp tstCompareType, funcUnderTest func(a, b inte
{"8", "5", 1},
{"5", "0001", 1},
{[]int{100, 99}, []int{1, 2, 3, 4}, -1},
{cast.ToTime("2015-11-20"), cast.ToTime("2015-11-20"), 0},
{cast.ToTime("2015-11-19"), cast.ToTime("2015-11-20"), -1},
{cast.ToTime("2015-11-20"), cast.ToTime("2015-11-19"), 1},
} {
result := funcUnderTest(this.left, this.right)
success := false