From 29a2da0593b081cdd61b93c6328af2c9ea4eb20f Mon Sep 17 00:00:00 2001 From: Cameron Moore Date: Mon, 14 Aug 2017 18:30:04 -0500 Subject: [PATCH] tpl: Cleanup strings.TrimPrefix and TrimSuffix These funcs were added during the move to namespaces but were undocumented. This commit fixes the order of the arguments and adds the funcs to the method mapping. --- tpl/strings/init.go | 16 ++++++++++++++++ tpl/strings/strings.go | 4 ++-- tpl/strings/strings_test.go | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) 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)