diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2024-06-01 17:26:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-01 21:26:53 +0000 |
| commit | 7d646a828a363db3d11ece2c2c2c9c560494e95c (patch) | |
| tree | 46d49be6bbadbf3c19b6bacada92ed26167edb03 /internal/funcs | |
| parent | 0d13f844de65d1c424fafb8301e39639f8a8d410 (diff) | |
feat(strings): Update strings.Indent to error on bad input instead of silently doing nothing (#2089)
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'internal/funcs')
| -rw-r--r-- | internal/funcs/strings.go | 18 |
1 files changed, 13 insertions, 5 deletions
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 - |
