aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/ettle/strcase/caser.go
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2022-09-05 14:27:54 +0200
committerGitHub <noreply@github.com>2022-09-05 12:27:54 +0000
commitb2f2446b46bf02821d90ebedadae2bf7ae0e880e (patch)
tree923cf42842918d6bebca1d6bbdc08abed54d274d /vendor/github.com/ettle/strcase/caser.go
parente6654faff4bcca4be92e9a8596fd4b77f747c39e (diff)
go.mod, vendor: update (#3358)
* go.mod, vendor: remove unnecessary dependencies Commands: 1. go mod tidy 2. go mod vendor * go.mod, vendor: update cloud.google.com/go Commands: 1. go get -u cloud.google.com/go 2. go mod tidy 3. go mod vendor * go.mod, vendor: update cloud.google.com/* Commands: 1. go get -u cloud.google.com/storage cloud.google.com/logging 2. go mod tidy 3. go mod vendor * go.mod, .golangci.yml, vendor: update *lint* Commands: 1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0 2. go mod tidy 3. go mod vendor 4. edit .golangci.yml to suppress new errors (resolved in the same PR later) * all: fix lint errors hash.go: copy() recommended by gosimple parse.go: ent is never nil verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why. * .golangci.yml: adjust godot rules check-all is deprecated, but still work if you're hesitating too - I'll remove this commit
Diffstat (limited to 'vendor/github.com/ettle/strcase/caser.go')
-rw-r--r--vendor/github.com/ettle/strcase/caser.go87
1 files changed, 87 insertions, 0 deletions
diff --git a/vendor/github.com/ettle/strcase/caser.go b/vendor/github.com/ettle/strcase/caser.go
new file mode 100644
index 000000000..891a67189
--- /dev/null
+++ b/vendor/github.com/ettle/strcase/caser.go
@@ -0,0 +1,87 @@
+package strcase
+
+// Caser allows for customization of parsing and intialisms
+type Caser struct {
+ initialisms map[string]bool
+ splitFn SplitFn
+}
+
+// NewCaser returns a configured Caser.
+//
+// A Caser should be created when you want fine grained control over how the words are split.
+//
+// Notes on function arguments
+//
+// goInitialisms: Whether to use Golint's intialisms
+//
+// initialismOverrides: A mapping of extra initialisms
+// Keys must be in ALL CAPS. Merged with Golint's if goInitialisms is set.
+// Setting a key to false will override Golint's.
+//
+// splitFn: How to separate words
+// Override the default split function. Consider using NewSplitFn to
+// configure one instead of writing your own.
+func NewCaser(goInitialisms bool, initialismOverrides map[string]bool, splitFn SplitFn) *Caser {
+ c := &Caser{
+ initialisms: golintInitialisms,
+ splitFn: splitFn,
+ }
+
+ if c.splitFn == nil {
+ c.splitFn = defaultSplitFn
+ }
+
+ if goInitialisms && initialismOverrides != nil {
+ c.initialisms = map[string]bool{}
+ for k, v := range golintInitialisms {
+ c.initialisms[k] = v
+ }
+ for k, v := range initialismOverrides {
+ c.initialisms[k] = v
+ }
+ } else if !goInitialisms {
+ c.initialisms = initialismOverrides
+ }
+
+ return c
+}
+
+// ToSnake returns words in snake_case (lower case words with underscores).
+func (c *Caser) ToSnake(s string) string {
+ return convert(s, c.splitFn, '_', LowerCase, c.initialisms)
+}
+
+// ToSNAKE returns words in SNAKE_CASE (upper case words with underscores).
+// Also known as SCREAMING_SNAKE_CASE or UPPER_CASE.
+func (c *Caser) ToSNAKE(s string) string {
+ return convert(s, c.splitFn, '_', UpperCase, c.initialisms)
+}
+
+// ToKebab returns words in kebab-case (lower case words with dashes).
+// Also known as dash-case.
+func (c *Caser) ToKebab(s string) string {
+ return convert(s, c.splitFn, '-', LowerCase, c.initialisms)
+}
+
+// ToKEBAB returns words in KEBAB-CASE (upper case words with dashes).
+// Also known as SCREAMING-KEBAB-CASE or SCREAMING-DASH-CASE.
+func (c *Caser) ToKEBAB(s string) string {
+ return convert(s, c.splitFn, '-', UpperCase, c.initialisms)
+}
+
+// ToPascal returns words in PascalCase (capitalized words concatenated together).
+// Also known as UpperPascalCase.
+func (c *Caser) ToPascal(s string) string {
+ return convert(s, c.splitFn, '\x00', TitleCase, c.initialisms)
+}
+
+// ToCamel returns words in camelCase (capitalized words concatenated together, with first word lower case).
+// Also known as lowerCamelCase or mixedCase.
+func (c *Caser) ToCamel(s string) string {
+ return convert(s, c.splitFn, '\x00', CamelCase, c.initialisms)
+}
+
+// ToCase returns words with a given case and delimiter.
+func (c *Caser) ToCase(s string, wordCase WordCase, delimiter rune) string {
+ return convert(s, c.splitFn, delimiter, wordCase, c.initialisms)
+}