Skip to content

markbates/inflect

Repository files navigation

Build Status

INSTALLATION

go get github.com/markbates/inflect

PACKAGE

package inflect

FUNCTIONS

func AddAcronym(word string)
func AddHuman(suffix, replacement string)
func AddIrregular(singular, plural string)
func AddPlural(suffix, replacement string)
func AddSingular(suffix, replacement string)
func AddUncountable(word string)
func Asciify(word string) string
func Camelize(word string) string
func CamelizeDownFirst(word string) string
func Capitalize(word string) string
func Dasherize(word string) string
func ForeignKey(word string) string
func ForeignKeyCondensed(word string) string
func Humanize(word string) string
func Ordinalize(word string) string
func Parameterize(word string) string
func ParameterizeJoin(word, sep string) string
func Pluralize(word string) string
func Singularize(word string) string
func Tableize(word string) string
func Titleize(word string) string
func Typeify(word string) string
func Uncountables() map[string]bool
func Underscore(word string) string

TYPES

type Rule struct {
    // contains filtered or unexported fields
}

used by rulesets

type Ruleset struct {
    // contains filtered or unexported fields
}

a Ruleset is the config of pluralization rules you can extend the rules with the Add* methods

func NewDefaultRuleset() *Ruleset

create a new ruleset and load it with the default set of common English pluralization rules

func NewRuleset() *Ruleset

create a blank ruleset. Unless you are going to build your own rules from scratch you probably won't need this and can just use the defaultRuleset via the global inflect.* methods

func (rs *Ruleset) AddAcronym(word string)

if you use acronym you may need to add them to the ruleset to prevent Underscored words of things like "HTML" coming out as "h_t_m_l"

func (rs *Ruleset) AddHuman(suffix, replacement string)

Human rules are applied by humanize to show more friendly versions of words

func (rs *Ruleset) AddIrregular(singular, plural string)

Add any inconsistent pluralizing/singularizing rules to the set here.

func (rs *Ruleset) AddPlural(suffix, replacement string)

add a pluralization rule

func (rs *Ruleset) AddPluralExact(suffix, replacement string, exact bool)

add a pluralization rule with full string match

func (rs *Ruleset) AddSingular(suffix, replacement string)

add a singular rule

func (rs *Ruleset) AddSingularExact(suffix, replacement string, exact bool)

same as AddSingular but you can set exact to force a full string match

func (rs *Ruleset) AddUncountable(word string)

add a word to this ruleset that has the same singular and plural form for example: "rice"

func (rs *Ruleset) Asciify(word string) string

transforms Latin characters like é -> e

func (rs *Ruleset) Camelize(word string) string

"dino_party" -> "DinoParty"

func (rs *Ruleset) CamelizeDownFirst(word string) string

same as Camelcase but with first letter downcased

func (rs *Ruleset) Capitalize(word string) string

uppercase first character

func (rs *Ruleset) Dasherize(word string) string

"SomeText" -> "some-text"

func (rs *Ruleset) ForeignKey(word string) string

an underscored foreign key name "Person" -> "person_id"

func (rs *Ruleset) ForeignKeyCondensed(word string) string

a foreign key (with an underscore) "Person" -> "personid"

func (rs *Ruleset) Humanize(word string) string

First letter of sentence capitalized Uses custom friendly replacements via AddHuman()

func (rs *Ruleset) Ordinalize(str string) string

"1031" -> "1031st"

func (rs *Ruleset) Parameterize(word string) string

param safe dasherized names like "my-param"

func (rs *Ruleset) ParameterizeJoin(word, sep string) string

param safe dasherized names with custom separator

func (rs *Ruleset) Pluralize(word string) string

returns the plural form of a singular word

func (rs *Ruleset) Singularize(word string) string

returns the singular form of a plural word

func (rs *Ruleset) Tableize(word string) string

Rails style pluralized table names: "SuperPerson" -> "super_people"

func (rs *Ruleset) Titleize(word string) string

Capitalize every word in sentence "hello there" -> "Hello There"

func (rs *Ruleset) Typeify(word string) string

"something_like_this" -> "SomethingLikeThis"

func (rs *Ruleset) Uncountables() map[string]bool
func (rs *Ruleset) Underscore(word string) string

lowercase underscore version "BigBen" -> "big_ben"