summaryrefslogtreecommitdiff
path: root/internal/funcs
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2024-06-01 17:26:53 -0400
committerGitHub <noreply@github.com>2024-06-01 21:26:53 +0000
commit7d646a828a363db3d11ece2c2c2c9c560494e95c (patch)
tree46d49be6bbadbf3c19b6bacada92ed26167edb03 /internal/funcs
parent0d13f844de65d1c424fafb8301e39639f8a8d410 (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.go18
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 -