Skip to content

Commit 80ece00

Browse files
committed
add strings namespace with strings package functions
1 parent a894efd commit 80ece00

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed

environ/funcs.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import (
1717
// FuncMap is the default list of functions available to templates. If you add
1818
// methods here, please keep them alphabetical.
1919
var FuncMap = map[string]interface{}{
20+
// namespaces
21+
"strings": strFuncs,
22+
2023
"camel": kace.Camel,
2124
"compare": strings.Compare,
2225
"contains": strings.Contains,

environ/strings.go

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
package environ
2+
3+
import "strings"
4+
5+
func strFuncs() strfunc {
6+
return strfunc{}
7+
}
8+
9+
type strfunc struct{}
10+
11+
func (strfunc) Compare(a, b string) int {
12+
return strings.Compare(a, b)
13+
}
14+
15+
func (strfunc) Contains(s, substr string) bool {
16+
return strings.Contains(s, substr)
17+
}
18+
19+
func (strfunc) ContainsAny(s, chars string) bool {
20+
return strings.ContainsAny(s, chars)
21+
}
22+
23+
func (strfunc) Count(s, substr string) int {
24+
return strings.Count(s, substr)
25+
}
26+
27+
func (strfunc) EqualFold(s, t string) bool {
28+
return strings.EqualFold(s, t)
29+
}
30+
31+
func (strfunc) Fields(s string) []string {
32+
return strings.Fields(s)
33+
}
34+
35+
func (strfunc) HasPrefix(s, prefix string) bool {
36+
return strings.HasPrefix(s, prefix)
37+
}
38+
39+
func (strfunc) Index(s, substr string) int {
40+
return strings.Index(s, substr)
41+
}
42+
43+
func (strfunc) IndexAny(s, chars string) int {
44+
return strings.IndexAny(s, chars)
45+
}
46+
47+
func (strfunc) Join(a []string, sep string) string {
48+
return strings.Join(a, sep)
49+
}
50+
51+
func (strfunc) LastIndex(s, substr string) int {
52+
return strings.LastIndex(s, substr)
53+
}
54+
55+
func (strfunc) LastIndexAny(s, chars string) int {
56+
return strings.LastIndexAny(s, chars)
57+
}
58+
59+
func (strfunc) Repeat(s string, count int) string {
60+
return strings.Repeat(s, count)
61+
}
62+
63+
func (strfunc) Replace(s, old, new string, n int) string {
64+
return strings.Replace(s, old, new, n)
65+
}
66+
67+
func (strfunc) Split(s, sep string) []string {
68+
return strings.Split(s, sep)
69+
}
70+
71+
func (strfunc) SplitAfter(s, sep string) []string {
72+
return strings.SplitAfter(s, sep)
73+
}
74+
75+
func (strfunc) SplitAfterN(s, sep string, n int) []string {
76+
return strings.SplitAfterN(s, sep, n)
77+
}
78+
79+
func (strfunc) SplitN(s, sep string, n int) []string {
80+
return strings.SplitN(s, sep, n)
81+
}
82+
83+
func (strfunc) Title(s string) string {
84+
return strings.Title(s)
85+
}
86+
87+
func (strfunc) ToLower(s string) string {
88+
return strings.ToLower(s)
89+
}
90+
91+
func (strfunc) ToTitle(s string) string {
92+
return strings.ToTitle(s)
93+
}
94+
95+
func (strfunc) ToUpper(s string) string {
96+
return strings.ToUpper(s)
97+
}
98+
99+
func (strfunc) Trim(s string, cutset string) string {
100+
return strings.Trim(s, cutset)
101+
}
102+
103+
func (strfunc) TrimLeft(s string, cutset string) string {
104+
return strings.TrimLeft(s, cutset)
105+
}
106+
107+
func (strfunc) TrimPrefix(s, prefix string) string {
108+
return strings.TrimPrefix(s, prefix)
109+
}
110+
111+
func (strfunc) TrimRight(s string, cutset string) string {
112+
return strings.TrimRight(s, cutset)
113+
}
114+
115+
func (strfunc) TrimSpace(s string) string {
116+
return strings.TrimSpace(s)
117+
}
118+
119+
func (strfunc) TrimSuffix(s, suffix string) string {
120+
return strings.TrimSuffix(s, suffix)
121+
}

0 commit comments

Comments
 (0)