From 7d646a828a363db3d11ece2c2c2c9c560494e95c Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Sat, 1 Jun 2024 17:26:53 -0400 Subject: feat(strings): Update strings.Indent to error on bad input instead of silently doing nothing (#2089) Signed-off-by: Dave Henderson --- internal/funcs/strings.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'internal/funcs') diff --git a/internal/funcs/strings.go b/internal/funcs/strings.go index c648ab0d..53869c7b 100644 --- a/internal/funcs/strings.go +++ b/internal/funcs/strings.go @@ -244,31 +244,39 @@ func (StringFuncs) Trunc(length int, s interface{}) string { // Indent - func (StringFuncs) Indent(args ...interface{}) (string, error) { - input := conv.ToString(args[len(args)-1]) indent := " " width := 1 + var ok bool + switch len(args) { + case 0: + return "", fmt.Errorf("expected at least 1 argument") case 2: indent, ok = args[0].(string) if !ok { width, ok = args[0].(int) if !ok { - return "", fmt.Errorf("indent: invalid arguments") + return "", fmt.Errorf("invalid arguments") } + indent = " " } case 3: width, ok = args[0].(int) if !ok { - return "", fmt.Errorf("indent: invalid arguments") + return "", fmt.Errorf("invalid arguments") } + indent, ok = args[1].(string) if !ok { - return "", fmt.Errorf("indent: invalid arguments") + return "", fmt.Errorf("invalid arguments") } } - return gompstrings.Indent(width, indent, input), nil + + input := conv.ToString(args[len(args)-1]) + + return gompstrings.Indent(width, indent, input) } // Slug - -- cgit v1.2.3