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  }