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.
This commit is contained in:
Cameron Moore 2017-08-14 18:30:04 -05:00 committed by Bjørn Erik Pedersen
parent 7674ad7382
commit 29a2da0593
3 changed files with 20 additions and 4 deletions

View file

@ -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, ns.AddMethodMapping(ctx.TrimRight,
nil, nil,
[][2]string{ [][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, ns.AddMethodMapping(ctx.Title,
[]string{"title"}, []string{"title"},
[][2]string{ [][2]string{

View file

@ -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 // TrimPrefix returns s without the provided leading prefix string. If s doesn't
// start with prefix, s is returned unchanged. // 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) ss, err := cast.ToStringE(s)
if err != nil { if err != nil {
return "", err 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 // TrimSuffix returns s without the provided trailing suffix string. If s
// doesn't end with suffix, s is returned unchanged. // 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) ss, err := cast.ToStringE(s)
if err != nil { if err != nil {
return "", err return "", err

View file

@ -627,7 +627,7 @@ func TestTrimPrefix(t *testing.T) {
} { } {
errMsg := fmt.Sprintf("[%d] %v", i, test) 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 { if b, ok := test.expect.(bool); ok && !b {
require.Error(t, err, errMsg) require.Error(t, err, errMsg)
@ -692,7 +692,7 @@ func TestTrimSuffix(t *testing.T) {
} { } {
errMsg := fmt.Sprintf("[%d] %v", i, test) 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 { if b, ok := test.expect.(bool); ok && !b {
require.Error(t, err, errMsg) require.Error(t, err, errMsg)