strcases

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2024 License: Apache-2.0 Imports: 4 Imported by: 1

README

godoc codecov Go Report Card

strcases - string case utilities

This package provides a rudimentary detector and other string case utilities.

Installation

> go get github.com/go-corelibs/strcases@latest

Examples

CaseDetector

func main() {
    // create a new CaseDetector instance
    cd := strcases.NewCaseDetector()
    c := cd.Detect(`ThisIsCamelCase`)
    // c == strcases.CamelCase
    modified := c.Apply(`kebab-case`)
    // modified == "KebabCase"
}

Go-CoreLibs

Go-CoreLibs is a repository of shared code between the Go-Curses and Go-Enjin projects.

License

Copyright 2024 The Go-CoreLibs Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use file except in compliance with the License.
You may obtain a copy of the license at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CanPreserve

func CanPreserve(input string) (can bool)

CanPreserve checks if input is only alphanumeric, dash or underscore characters

func ProfileCase

func ProfileCase(input string) (breaker, lower, upper, kebab, underscore bool)

ProfileCase scans through each rune in the given input and checks for a number of interesting hints about the string case of the input

breaker     has things aren't alphanumeric, dash or underscore
lower       has at least one lower case character
upper       has at least one upper case character
kebab       has at least one dash character
underscore  has at least one underscore character

Types

type Case

type Case uint8

Case is a simple type for indicating a detected string case

const (
	UnknownCase Case = iota
	LowerCase
	UpperCase
	CamelCase
	LowerCamelCase
	KebabCase
	ScreamingKebabCase
	SnakeCase
	ScreamingSnakeCase
)

func DetectCase

func DetectCase(input string) (detected Case)

DetectCase uses ProfileCase and some extra efforts to reliably discern the obvious string case of the given input

func (Case) Apply

func (c Case) Apply(input string) (modified string)

Apply returns the input text with the detected Case applied. For example:

CamelCase.Apply("kebab-thing") == "KebabThing"
KebabCase.Apply("CamelCase") == "camel-case"

func (Case) String

func (c Case) String() (name string)

String returns the name of the string case, in that string cases' case

type CaseDetector

type CaseDetector interface {
	// Detect wraps DetectCase and caches the results
	Detect(input string) (c Case)
	// Reset will clear the existing cache of cases detected
	Reset()
}

CaseDetector is a caching system in order to optimize usage of the expensive DetectCase function

func NewCaseDetector

func NewCaseDetector() (d CaseDetector)

NewCaseDetector constructs a new CaseDetector instance

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL