summaryrefslogtreecommitdiff
path: root/funcs/strings.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2018-04-18 23:50:42 -0400
committerDave Henderson <dhenderson@gmail.com>2018-04-18 23:50:42 -0400
commite142ace1394fe56eec1cfdfb1c8a3db0efb6ff9f (patch)
tree01498625109f9f92d82996864399ff1e3a5f088c /funcs/strings.go
parent3813bd30819c13047f385637d0f038dc84277633 (diff)
Relax inputs for many functions
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs/strings.go')
-rw-r--r--funcs/strings.go58
1 files changed, 29 insertions, 29 deletions
diff --git a/funcs/strings.go b/funcs/strings.go
index b47e284a..07112ee1 100644
--- a/funcs/strings.go
+++ b/funcs/strings.go
@@ -9,6 +9,8 @@ import (
"log"
"sync"
+ "github.com/hairyhenderson/gomplate/conv"
+
"strings"
gompstrings "github.com/hairyhenderson/gomplate/strings"
@@ -49,73 +51,71 @@ func AddStringFuncs(f map[string]interface{}) {
type StringFuncs struct{}
// ReplaceAll -
-func (f *StringFuncs) ReplaceAll(old, new, s string) string {
- return strings.Replace(s, old, new, -1)
+func (f *StringFuncs) ReplaceAll(old, new string, s interface{}) string {
+ return strings.Replace(conv.ToString(s), old, new, -1)
}
// Contains -
-func (f *StringFuncs) Contains(substr, s string) bool {
- return strings.Contains(s, substr)
+func (f *StringFuncs) Contains(substr string, s interface{}) bool {
+ return strings.Contains(conv.ToString(s), substr)
}
// HasPrefix -
-func (f *StringFuncs) HasPrefix(prefix, s string) bool {
- return strings.HasPrefix(s, prefix)
+func (f *StringFuncs) HasPrefix(prefix string, s interface{}) bool {
+ return strings.HasPrefix(conv.ToString(s), prefix)
}
// HasSuffix -
-func (f *StringFuncs) HasSuffix(suffix, s string) bool {
- return strings.HasSuffix(s, suffix)
+func (f *StringFuncs) HasSuffix(suffix string, s interface{}) bool {
+ return strings.HasSuffix(conv.ToString(s), suffix)
}
// Split -
-func (f *StringFuncs) Split(sep, s string) []string {
- return strings.Split(s, sep)
+func (f *StringFuncs) Split(sep string, s interface{}) []string {
+ return strings.Split(conv.ToString(s), sep)
}
// SplitN -
-func (f *StringFuncs) SplitN(sep string, n int, s string) []string {
- return strings.SplitN(s, sep, n)
+func (f *StringFuncs) SplitN(sep string, n int, s interface{}) []string {
+ return strings.SplitN(conv.ToString(s), sep, n)
}
// Trim -
-func (f *StringFuncs) Trim(cutset, s string) string {
- return strings.Trim(s, cutset)
+func (f *StringFuncs) Trim(cutset string, s interface{}) string {
+ return strings.Trim(conv.ToString(s), cutset)
}
-// Trim Prefix-
-func (f *StringFuncs) TrimPrefix(cutset, s string) string {
- return strings.TrimPrefix(s, cutset)
+// TrimPrefix -
+func (f *StringFuncs) TrimPrefix(cutset string, s interface{}) string {
+ return strings.TrimPrefix(conv.ToString(s), cutset)
}
// Title -
-func (f *StringFuncs) Title(s string) string {
- return strings.Title(s)
+func (f *StringFuncs) Title(s interface{}) string {
+ return strings.Title(conv.ToString(s))
}
// ToUpper -
-func (f *StringFuncs) ToUpper(s string) string {
- return strings.ToUpper(s)
+func (f *StringFuncs) ToUpper(s interface{}) string {
+ return strings.ToUpper(conv.ToString(s))
}
// ToLower -
-func (f *StringFuncs) ToLower(s string) string {
- return strings.ToLower(s)
+func (f *StringFuncs) ToLower(s interface{}) string {
+ return strings.ToLower(conv.ToString(s))
}
// TrimSpace -
-func (f *StringFuncs) TrimSpace(s string) string {
- return strings.TrimSpace(s)
+func (f *StringFuncs) TrimSpace(s interface{}) string {
+ return strings.TrimSpace(conv.ToString(s))
}
// Indent -
func (f *StringFuncs) Indent(args ...interface{}) string {
- input, ok := args[len(args)-1].(string)
- if !ok {
- log.Fatal("Indent: invalid arguments")
- }
+ input := conv.ToString(args[len(args)-1])
indent := " "
width := 1
+ var ok bool
switch len(args) {
case 2:
indent, ok = args[0].(string)