diff --git a/tpl/strings/init.go b/tpl/strings/init.go index b7491b81d..dc674c522 100644 --- a/tpl/strings/init.go +++ b/tpl/strings/init.go @@ -119,6 +119,14 @@ func init() { }, ) + ns.AddMethodMapping(ctx.TrimPrefix, + nil, + [][2]string{ + {`{{ "aabbaa" | strings.TrimPrefix "a" }}`, `abbaa`}, + {`{{ "aabbaa" | strings.TrimPrefix "aa" }}`, `bbaa`}, + }, + ) + ns.AddMethodMapping(ctx.TrimRight, nil, [][2]string{ @@ -126,6 +134,14 @@ func init() { }, ) + ns.AddMethodMapping(ctx.TrimSuffix, + nil, + [][2]string{ + {`{{ "aabbaa" | strings.TrimSuffix "a" }}`, `aabba`}, + {`{{ "aabbaa" | strings.TrimSuffix "aa" }}`, `aabb`}, + }, + ) + ns.AddMethodMapping(ctx.Title, []string{"title"}, [][2]string{ diff --git a/tpl/strings/strings.go b/tpl/strings/strings.go index 1e1bda493..f8acbfe2b 100644 --- a/tpl/strings/strings.go +++ b/tpl/strings/strings.go @@ -365,7 +365,7 @@ func (ns *Namespace) TrimLeft(cutset, s interface{}) (string, error) { // TrimPrefix returns s without the provided leading prefix string. If s doesn't // start with prefix, s is returned unchanged. -func (ns *Namespace) TrimPrefix(s, prefix interface{}) (string, error) { +func (ns *Namespace) TrimPrefix(prefix, s interface{}) (string, error) { ss, err := cast.ToStringE(s) if err != nil { return "", err @@ -397,7 +397,7 @@ func (ns *Namespace) TrimRight(cutset, s interface{}) (string, error) { // TrimSuffix returns s without the provided trailing suffix string. If s // doesn't end with suffix, s is returned unchanged. -func (ns *Namespace) TrimSuffix(s, suffix interface{}) (string, error) { +func (ns *Namespace) TrimSuffix(suffix, s interface{}) (string, error) { ss, err := cast.ToStringE(s) if err != nil { return "", err diff --git a/tpl/strings/strings_test.go b/tpl/strings/strings_test.go index 8c6b97602..3ab73392c 100644 --- a/tpl/strings/strings_test.go +++ b/tpl/strings/strings_test.go @@ -627,7 +627,7 @@ func TestTrimPrefix(t *testing.T) { } { errMsg := fmt.Sprintf("[%d] %v", i, test) - result, err := ns.TrimPrefix(test.s, test.prefix) + result, err := ns.TrimPrefix(test.prefix, test.s) if b, ok := test.expect.(bool); ok && !b { require.Error(t, err, errMsg) @@ -692,7 +692,7 @@ func TestTrimSuffix(t *testing.T) { } { errMsg := fmt.Sprintf("[%d] %v", i, test) - result, err := ns.TrimSuffix(test.s, test.suffix) + result, err := ns.TrimSuffix(test.suffix, test.s) if b, ok := test.expect.(bool); ok && !b { require.Error(t, err, errMsg)