act/vendor/github.com/mgutz/str/README.md

650 lines
15 KiB
Markdown
Raw Normal View History

# str
import "github.com/mgutz/str"
Package str is a comprehensive set of string functions to build more Go
awesomeness. Str complements Go's standard packages and does not duplicate
functionality found in `strings` or `strconv`.
Str is based on plain functions instead of object-based methods, consistent with
Go standard string packages.
str.Between("<a>foo</a>", "<a>", "</a>") == "foo"
Str supports pipelining instead of chaining
s := str.Pipe("\nabcdef\n", Clean, BetweenF("a", "f"), ChompLeftF("bc"))
User-defined filters can be added to the pipeline by inserting a function or
closure that returns a function with this signature
func(string) string
### Index
* [Variables](#variables)
* [func Between](#func
[godoc](https://godoc.org/github.com/mgutz/str)
between)
* [func BetweenF](#func--betweenf)
* [func Camelize](#func--camelize)
* [func Capitalize](#func--capitalize)
* [func CharAt](#func--charat)
* [func CharAtF](#func--charatf)
* [func ChompLeft](#func--chompleft)
* [func ChompLeftF](#func--chompleftf)
* [func ChompRight](#func--chompright)
* [func ChompRightF](#func--chomprightf)
* [func Classify](#func--classify)
* [func ClassifyF](#func--classifyf)
* [func Clean](#func--clean)
* [func Dasherize](#func--dasherize)
* [func DecodeHTMLEntities](#func--decodehtmlentities)
* [func EnsurePrefix](#func--ensureprefix)
* [func EnsurePrefixF](#func--ensureprefixf)
* [func EnsureSuffix](#func--ensuresuffix)
* [func EnsureSuffixF](#func--ensuresuffixf)
* [func EscapeHTML](#func--escapehtml)
* [func Humanize](#func--humanize)
* [func Iif](#func--iif)
* [func IndexOf](#func--indexof)
* [func IsAlpha](#func--isalpha)
* [func IsAlphaNumeric](#func--isalphanumeric)
* [func IsEmpty](#func--isempty)
* [func IsLower](#func--islower)
* [func IsNumeric](#func--isnumeric)
* [func IsUpper](#func--isupper)
* [func Left](#func--left)
* [func LeftF](#func--leftf)
* [func LeftOf](#func--leftof)
* [func Letters](#func--letters)
* [func Lines](#func--lines)
* [func Map](#func--map)
* [func Match](#func--match)
* [func Pad](#func--pad)
* [func PadF](#func--padf)
* [func PadLeft](#func--padleft)
* [func PadLeftF](#func--padleftf)
* [func PadRight](#func--padright)
* [func PadRightF](#func--padrightf)
* [func Pipe](#func--pipe)
* [func QuoteItems](#func--quoteitems)
* [func ReplaceF](#func--replacef)
* [func ReplacePattern](#func--replacepattern)
* [func ReplacePatternF](#func--replacepatternf)
* [func Reverse](#func--reverse)
* [func Right](#func--right)
* [func RightF](#func--rightf)
* [func RightOf](#func--rightof)
* [func SetTemplateDelimiters](#func--settemplatedelimiters)
* [func Slice](#func--slice)
* [func SliceContains](#func--slicecontains)
* [func SliceF](#func--slicef)
* [func SliceIndexOf](#func--sliceindexof)
* [func Slugify](#func--slugify)
* [func StripPunctuation](#func--strippunctuation)
* [func StripTags](#func--striptags)
* [func Substr](#func--substr)
* [func SubstrF](#func--substrf)
* [func Template](#func--template)
* [func TemplateDelimiters](#func--templatedelimiters)
* [func TemplateWithDelimiters](#func--templatewithdelimiters)
* [func ToArgv](#func--toargv)
* [func ToBool](#func--tobool)
* [func ToBoolOr](#func--toboolor)
* [func ToFloat32Or](#func--tofloat32or)
* [func ToFloat64Or](#func--tofloat64or)
* [func ToIntOr](#func--tointor)
* [func Underscore](#func--underscore)
* [func UnescapeHTML](#func--unescapehtml)
* [func WrapHTML](#func--wraphtml)
* [func WrapHTMLF](#func--wraphtmlf)
#### Variables
```go
var ToFloatOr = ToFloat64Or
```
ToFloatOr parses as a float64 or returns defaultValue.
```go
var Verbose = false
```
Verbose flag enables console output for those functions that have counterparts
in Go's excellent stadard packages.
#### func [Between](#between)
```go
func Between(s, left, right string) string
```
Between extracts a string between left and right strings.
#### func [BetweenF](#betweenf)
```go
func BetweenF(left, right string) func(string) string
```
BetweenF is the filter form for Between.
#### func [Camelize](#camelize)
```go
func Camelize(s string) string
```
Camelize return new string which removes any underscores or dashes and convert a
string into camel casing.
#### func [Capitalize](#capitalize)
```go
func Capitalize(s string) string
```
Capitalize uppercases the first char of s and lowercases the rest.
#### func [CharAt](#charat)
```go
func CharAt(s string, index int) string
```
CharAt returns a string from the character at the specified position.
#### func [CharAtF](#charatf)
```go
func CharAtF(index int) func(string) string
```
CharAtF is the filter form of CharAt.
#### func [ChompLeft](#chompleft)
```go
func ChompLeft(s, prefix string) string
```
ChompLeft removes prefix at the start of a string.
#### func [ChompLeftF](#chompleftf)
```go
func ChompLeftF(prefix string) func(string) string
```
ChompLeftF is the filter form of ChompLeft.
#### func [ChompRight](#chompright)
```go
func ChompRight(s, suffix string) string
```
ChompRight removes suffix from end of s.
#### func [ChompRightF](#chomprightf)
```go
func ChompRightF(suffix string) func(string) string
```
ChompRightF is the filter form of ChompRight.
#### func [Classify](#classify)
```go
func Classify(s string) string
```
Classify returns a camelized string with the first letter upper cased.
#### func [ClassifyF](#classifyf)
```go
func ClassifyF(s string) func(string) string
```
ClassifyF is the filter form of Classify.
#### func [Clean](#clean)
```go
func Clean(s string) string
```
Clean compresses all adjacent whitespace to a single space and trims s.
#### func [Dasherize](#dasherize)
```go
func Dasherize(s string) string
```
Dasherize converts a camel cased string into a string delimited by dashes.
#### func [DecodeHTMLEntities](#decodehtmlentities)
```go
func DecodeHTMLEntities(s string) string
```
DecodeHTMLEntities decodes HTML entities into their proper string
representation. DecodeHTMLEntities is an alias for html.UnescapeString
#### func [EnsurePrefix](#ensureprefix)
```go
func EnsurePrefix(s, prefix string) string
```
EnsurePrefix ensures s starts with prefix.
#### func [EnsurePrefixF](#ensureprefixf)
```go
func EnsurePrefixF(prefix string) func(string) string
```
EnsurePrefixF is the filter form of EnsurePrefix.
#### func [EnsureSuffix](#ensuresuffix)
```go
func EnsureSuffix(s, suffix string) string
```
EnsureSuffix ensures s ends with suffix.
#### func [EnsureSuffixF](#ensuresuffixf)
```go
func EnsureSuffixF(suffix string) func(string) string
```
EnsureSuffixF is the filter form of EnsureSuffix.
#### func [EscapeHTML](#escapehtml)
```go
func EscapeHTML(s string) string
```
EscapeHTML is alias for html.EscapeString.
#### func [Humanize](#humanize)
```go
func Humanize(s string) string
```
Humanize transforms s into a human friendly form.
#### func [Iif](#iif)
```go
func Iif(condition bool, truthy string, falsey string) string
```
Iif is short for immediate if. If condition is true return truthy else falsey.
#### func [IndexOf](#indexof)
```go
func IndexOf(s string, needle string, start int) int
```
IndexOf finds the index of needle in s starting from start.
#### func [IsAlpha](#isalpha)
```go
func IsAlpha(s string) bool
```
IsAlpha returns true if a string contains only letters from ASCII (a-z,A-Z).
Other letters from other languages are not supported.
#### func [IsAlphaNumeric](#isalphanumeric)
```go
func IsAlphaNumeric(s string) bool
```
IsAlphaNumeric returns true if a string contains letters and digits.
#### func [IsEmpty](#isempty)
```go
func IsEmpty(s string) bool
```
IsEmpty returns true if the string is solely composed of whitespace.
#### func [IsLower](#islower)
```go
func IsLower(s string) bool
```
IsLower returns true if s comprised of all lower case characters.
#### func [IsNumeric](#isnumeric)
```go
func IsNumeric(s string) bool
```
IsNumeric returns true if a string contains only digits from 0-9. Other digits
not in Latin (such as Arabic) are not currently supported.
#### func [IsUpper](#isupper)
```go
func IsUpper(s string) bool
```
IsUpper returns true if s contains all upper case chracters.
#### func [Left](#left)
```go
func Left(s string, n int) string
```
Left returns the left substring of length n.
#### func [LeftF](#leftf)
```go
func LeftF(n int) func(string) string
```
LeftF is the filter form of Left.
#### func [LeftOf](#leftof)
```go
func LeftOf(s string, needle string) string
```
LeftOf returns the substring left of needle.
#### func [Letters](#letters)
```go
func Letters(s string) []string
```
Letters returns an array of runes as strings so it can be indexed into.
#### func [Lines](#lines)
```go
func Lines(s string) []string
```
Lines convert windows newlines to unix newlines then convert to an Array of
lines.
#### func [Map](#map)
```go
func Map(arr []string, iterator func(string) string) []string
```
Map maps an array's iitem through an iterator.
#### func [Match](#match)
```go
func Match(s, pattern string) bool
```
Match returns true if patterns matches the string
#### func [Pad](#pad)
```go
func Pad(s, c string, n int) string
```
Pad pads string s on both sides with c until it has length of n.
#### func [PadF](#padf)
```go
func PadF(c string, n int) func(string) string
```
PadF is the filter form of Pad.
#### func [PadLeft](#padleft)
```go
func PadLeft(s, c string, n int) string
```
PadLeft pads s on left side with c until it has length of n.
#### func [PadLeftF](#padleftf)
```go
func PadLeftF(c string, n int) func(string) string
```
PadLeftF is the filter form of PadLeft.
#### func [PadRight](#padright)
```go
func PadRight(s, c string, n int) string
```
PadRight pads s on right side with c until it has length of n.
#### func [PadRightF](#padrightf)
```go
func PadRightF(c string, n int) func(string) string
```
PadRightF is the filter form of Padright
#### func [Pipe](#pipe)
```go
func Pipe(s string, funcs ...func(string) string) string
```
Pipe pipes s through one or more string filters.
#### func [QuoteItems](#quoteitems)
```go
func QuoteItems(arr []string) []string
```
QuoteItems quotes all items in array, mostly for debugging.
#### func [ReplaceF](#replacef)
```go
func ReplaceF(old, new string, n int) func(string) string
```
ReplaceF is the filter form of strings.Replace.
#### func [ReplacePattern](#replacepattern)
```go
func ReplacePattern(s, pattern, repl string) string
```
ReplacePattern replaces string with regexp string. ReplacePattern returns a copy
of src, replacing matches of the Regexp with the replacement string repl. Inside
repl, $ signs are interpreted as in Expand, so for instance $1 represents the
text of the first submatch.
#### func [ReplacePatternF](#replacepatternf)
```go
func ReplacePatternF(pattern, repl string) func(string) string
```
ReplacePatternF is the filter form of ReplaceRegexp.
#### func [Reverse](#reverse)
```go
func Reverse(s string) string
```
Reverse a string
#### func [Right](#right)
```go
func Right(s string, n int) string
```
Right returns the right substring of length n.
#### func [RightF](#rightf)
```go
func RightF(n int) func(string) string
```
RightF is the Filter version of Right.
#### func [RightOf](#rightof)
```go
func RightOf(s string, prefix string) string
```
RightOf returns the substring to the right of prefix.
#### func [SetTemplateDelimiters](#settemplatedelimiters)
```go
func SetTemplateDelimiters(opening, closing string)
```
SetTemplateDelimiters sets the delimiters for Template function. Defaults to
"{{" and "}}"
#### func [Slice](#slice)
```go
func Slice(s string, start, end int) string
```
Slice slices a string. If end is negative then it is the from the end of the
string.
#### func [SliceContains](#slicecontains)
```go
func SliceContains(slice []string, val string) bool
```
SliceContains determines whether val is an element in slice.
#### func [SliceF](#slicef)
```go
func SliceF(start, end int) func(string) string
```
SliceF is the filter for Slice.
#### func [SliceIndexOf](#sliceindexof)
```go
func SliceIndexOf(slice []string, val string) int
```
SliceIndexOf gets the indx of val in slice. Returns -1 if not found.
#### func [Slugify](#slugify)
```go
func Slugify(s string) string
```
Slugify converts s into a dasherized string suitable for URL segment.
#### func [StripPunctuation](#strippunctuation)
```go
func StripPunctuation(s string) string
```
StripPunctuation strips puncation from string.
#### func [StripTags](#striptags)
```go
func StripTags(s string, tags ...string) string
```
StripTags strips all of the html tags or tags specified by the parameters
#### func [Substr](#substr)
```go
func Substr(s string, index int, n int) string
```
Substr returns a substring of s starting at index of length n.
#### func [SubstrF](#substrf)
```go
func SubstrF(index, n int) func(string) string
```
SubstrF is the filter form of Substr.
#### func [Template](#template)
```go
func Template(s string, values map[string]interface{}) string
```
Template is a string template which replaces template placeholders delimited by
"{{" and "}}" with values from map. The global delimiters may be set with
SetTemplateDelimiters.
#### func [TemplateDelimiters](#templatedelimiters)
```go
func TemplateDelimiters() (opening string, closing string)
```
TemplateDelimiters is the getter for the opening and closing delimiters for
Template.
#### func [TemplateWithDelimiters](#templatewithdelimiters)
```go
func TemplateWithDelimiters(s string, values map[string]interface{}, opening, closing string) string
```
TemplateWithDelimiters is string template with user-defineable opening and
closing delimiters.
#### func [ToArgv](#toargv)
```go
func ToArgv(s string) []string
```
ToArgv converts string s into an argv for exec.
#### func [ToBool](#tobool)
```go
func ToBool(s string) bool
```
ToBool fuzzily converts truthy values.
#### func [ToBoolOr](#toboolor)
```go
func ToBoolOr(s string, defaultValue bool) bool
```
ToBoolOr parses s as a bool or returns defaultValue.
#### func [ToFloat32Or](#tofloat32or)
```go
func ToFloat32Or(s string, defaultValue float32) float32
```
ToFloat32Or parses as a float32 or returns defaultValue on error.
#### func [ToFloat64Or](#tofloat64or)
```go
func ToFloat64Or(s string, defaultValue float64) float64
```
ToFloat64Or parses s as a float64 or returns defaultValue.
#### func [ToIntOr](#tointor)
```go
func ToIntOr(s string, defaultValue int) int
```
ToIntOr parses s as an int or returns defaultValue.
#### func [Underscore](#underscore)
```go
func Underscore(s string) string
```
Underscore returns converted camel cased string into a string delimited by
underscores.
#### func [UnescapeHTML](#unescapehtml)
```go
func UnescapeHTML(s string) string
```
UnescapeHTML is an alias for html.UnescapeString.
#### func [WrapHTML](#wraphtml)
```go
func WrapHTML(s string, tag string, attrs map[string]string) string
```
WrapHTML wraps s within HTML tag having attributes attrs. Note, WrapHTML does
not escape s value.
#### func [WrapHTMLF](#wraphtmlf)
```go
func WrapHTMLF(tag string, attrs map[string]string) func(string) string
```
WrapHTMLF is the filter form of WrapHTML.