github.com/mundipagg/tracer-splunk-writer@v1.0.6/strings/strings.go (about) 1 package strings 2 3 import ( 4 "bytes" 5 "html/template" 6 "regexp" 7 "strings" 8 9 "github.com/iancoleman/strcase" 10 ) 11 12 var emptyOrWhitespacePattern = regexp.MustCompile(`^\s*$`) 13 14 func IsBlank(str string) bool { 15 return emptyOrWhitespacePattern.MatchString(str) 16 } 17 18 func ToPascalCase(str string) string { 19 return Capitalize(strcase.ToCamel(str)) 20 } 21 22 func ToLowerCamelCase(str string) string { 23 return strcase.ToLowerCamel(str) 24 } 25 26 func UseAnnotation(str string) string { 27 return str 28 } 29 30 func Capitalize(str string) string { 31 if len(str) <= 1 { 32 return strings.ToUpper(str) 33 } 34 return strings.ToUpper(string(str[0])) + str[1:] 35 } 36 37 func ProcessString(str string, vars interface{}) (string, error) { 38 tmpl, err := template.New("tmpl").Parse(str) 39 40 if err != nil { 41 return "", err 42 } 43 return process(tmpl, vars) 44 } 45 46 func process(t *template.Template, vars interface{}) (string, error) { 47 var tmplBytes bytes.Buffer 48 49 err := t.Execute(&tmplBytes, vars) 50 if err != nil { 51 return "", err 52 } 53 return tmplBytes.String(), nil 54 }