Skip to content

Commit

Permalink
Remove inconsistent use of double-arrows for certain errors
Browse files Browse the repository at this point in the history
  • Loading branch information
zix99 committed Sep 16, 2022
1 parent 1c9d67c commit af6436c
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 37 deletions.
10 changes: 5 additions & 5 deletions pkg/expressions/stdlib/funcsComparators.go
Expand Up @@ -10,7 +10,7 @@ import (
func stringComparator(equation func(string, string) string) KeyBuilderFunction {
return KeyBuilderFunction(func(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val := args[0](context)
Expand All @@ -27,7 +27,7 @@ func stringComparator(equation func(string, string) string) KeyBuilderFunction {
func arithmaticEqualityHelper(test func(float64, float64) bool) KeyBuilderFunction {
return KeyBuilderFunction(func(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
left, err := strconv.ParseFloat(args[0](context), 64)
Expand All @@ -49,7 +49,7 @@ func arithmaticEqualityHelper(test func(float64, float64) bool) KeyBuilderFuncti

func kfNot(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
if Truthy(args[0](context)) {
Expand Down Expand Up @@ -86,7 +86,7 @@ func kfOr(args []KeyBuilderStage) KeyBuilderStage {
// {like string contains}
func kfLike(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val := args[0](context)
Expand All @@ -102,7 +102,7 @@ func kfLike(args []KeyBuilderStage) KeyBuilderStage {
// {if truthy val elseVal}
func kfIf(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 2 || len(args) > 3 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
ifVal := args[0](context)
Expand Down
14 changes: 7 additions & 7 deletions pkg/expressions/stdlib/funcsStrings.go
Expand Up @@ -12,7 +12,7 @@ import (
// {prefix string prefix}
func kfPrefix(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val := args[0](context)
Expand All @@ -28,7 +28,7 @@ func kfPrefix(args []KeyBuilderStage) KeyBuilderStage {
// {suffix string suffix}
func kfSuffix(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val := args[0](context)
Expand Down Expand Up @@ -149,7 +149,7 @@ func selectField(s string, idx int) string {
// just like fmt.Sprintf
func kfFormat(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
format := args[0](context)
Expand All @@ -165,7 +165,7 @@ func kfFormat(args []KeyBuilderStage) KeyBuilderStage {

func kfHumanizeInt(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val, err := strconv.Atoi(args[0](context))
Expand All @@ -178,7 +178,7 @@ func kfHumanizeInt(args []KeyBuilderStage) KeyBuilderStage {

func kfHumanizeFloat(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
return KeyBuilderStage(func(context KeyBuilderContext) string {
val, err := strconv.ParseFloat(args[0](context), 64)
Expand All @@ -191,12 +191,12 @@ func kfHumanizeFloat(args []KeyBuilderStage) KeyBuilderStage {

func kfBytesize(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

precision, err := strconv.Atoi(EvalStageIndexOrDefault(args, 1, "0"))
if err != nil {
return stageError(ErrorType)
return stageLiteral(ErrorType)
}

return KeyBuilderStage(func(context KeyBuilderContext) string {
Expand Down
24 changes: 12 additions & 12 deletions pkg/expressions/stdlib/funcsTime.go
Expand Up @@ -111,7 +111,7 @@ func smartDateParseWrapper(format string, tz *time.Location, dateStage KeyBuilde
// {func <time> [format:cache] [tz:utc]}
func kfTimeParse(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

// Special key-words for time (eg "now")
Expand All @@ -129,7 +129,7 @@ func kfTimeParse(args []KeyBuilderStage) KeyBuilderStage {
format := EvalStageIndexOrDefault(args, 1, "")
tz, tzOk := parseTimezoneLocation(EvalStageIndexOrDefault(args, 2, ""))
if !tzOk {
return stageError(ErrorParsing)
return stageLiteral(ErrorParsing)
}

return smartDateParseWrapper(format, tz, args[0], func(t time.Time) string {
Expand All @@ -140,13 +140,13 @@ func kfTimeParse(args []KeyBuilderStage) KeyBuilderStage {
// {func <unixtime> [format:RFC3339] [tz:utc]}
func kfTimeFormat(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}
format := namedTimeFormatToFormat(EvalStageIndexOrDefault(args, 1, defaultTimeFormat))

tz, tzOk := parseTimezoneLocation(EvalStageIndexOrDefault(args, 2, ""))
if !tzOk {
return stageError(ErrorParsing)
return stageLiteral(ErrorParsing)
}

return KeyBuilderStage(func(context KeyBuilderContext) string {
Expand All @@ -165,7 +165,7 @@ func kfTimeFormat(args []KeyBuilderStage) KeyBuilderStage {
// {func <duration_string>}
func kfDuration(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

return KeyBuilderStage(func(context KeyBuilderContext) string {
Expand All @@ -183,7 +183,7 @@ func kfDuration(args []KeyBuilderStage) KeyBuilderStage {
// {func <secs>} format seconds to duration
func kfDurationFormat(args []KeyBuilderStage) KeyBuilderStage {
if len(args) != 1 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

return KeyBuilderStage(func(context KeyBuilderContext) string {
Expand Down Expand Up @@ -220,14 +220,14 @@ func timeBucketToFormat(name string) string {
// {func <time> <bucket> [format:auto] [tz:utc]}
func kfBucketTime(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 2 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

bucketFormat := timeBucketToFormat(EvalStageOrDefault(args[1], "day"))
parseFormat := EvalStageIndexOrDefault(args, 2, "")
tz, tzOk := parseTimezoneLocation(EvalStageIndexOrDefault(args, 3, ""))
if !tzOk {
return stageError(ErrorParsing)
return stageLiteral(ErrorParsing)
}

return smartDateParseWrapper(parseFormat, tz, args[0], func(t time.Time) string {
Expand Down Expand Up @@ -255,21 +255,21 @@ var attrType = map[string](func(t time.Time) string){
// {func <time> <attr> [tz:utc]}
func kfTimeAttr(args []KeyBuilderStage) KeyBuilderStage {
if len(args) < 2 || len(args) > 3 {
return stageError(ErrorArgCount)
return stageLiteral(ErrorArgCount)
}

attrName, hasAttrName := EvalStaticStage(args[1])
if !hasAttrName {
return stageError(ErrorType)
return stageLiteral(ErrorType)
}
tz, tzOk := parseTimezoneLocation(EvalStageIndexOrDefault(args, 2, ""))
if !tzOk {
return stageError(ErrorParsing)
return stageLiteral(ErrorParsing)
}

attrFunc, hasAttrFunc := attrType[strings.ToUpper(attrName)]
if !hasAttrFunc {
return stageError(ErrorEnum)
return stageLiteral(ErrorEnum)
}

return KeyBuilderStage(func(context KeyBuilderContext) string {
Expand Down
8 changes: 4 additions & 4 deletions pkg/expressions/stdlib/funcsTime_test.go
Expand Up @@ -95,7 +95,7 @@ func TestDurationFormat(t *testing.T) {
testExpression(t,
mockContext("14400"),
"{durationformat {0} b}",
"<<ARGN>>")
"<ARGN>")
}

// Bucketing
Expand Down Expand Up @@ -153,21 +153,21 @@ func TestTimeAttrToBadTZ(t *testing.T) {
testExpression(t,
mockContext("14/Apr/2016 01:00:00"),
"{timeattr {time {0}} weekday asdf}",
"<<PARSE-ERROR>>")
"<PARSE-ERROR>")
}

func TestTimeAttrArgError(t *testing.T) {
testExpression(t,
mockContext("14/Apr/2016 01:00:00"),
"{timeattr {time {0}}}",
"<<ARGN>>")
"<ARGN>")
}

func TestTimeAttrArgErrorExtra(t *testing.T) {
testExpression(t,
mockContext("14/Apr/2016 01:00:00"),
"{timeattr {time {0}} a b c}",
"<<ARGN>>")
"<ARGN>")
}

// Utilities
Expand Down
9 changes: 0 additions & 9 deletions pkg/expressions/stdlib/stages.go
@@ -1,8 +1,6 @@
package stdlib

import (
"fmt"

. "rare/pkg/expressions" //lint:ignore ST1001 Legacy
)

Expand All @@ -11,10 +9,3 @@ func stageLiteral(s string) KeyBuilderStage {
return s
})
}

func stageError(msg string) KeyBuilderStage {
errMessage := fmt.Sprintf("<%s>", msg)
return KeyBuilderStage(func(context KeyBuilderContext) string {
return errMessage
})
}

0 comments on commit af6436c

Please sign in to comment.