inflect

package module
v0.21.5 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2025 License: Apache-2.0 Imports: 6 Imported by: 184

Image README

inflect

Tests Coverage CI vuln scan CodeQL

Release Go Report Card CodeFactor Grade License

GoDoc Slack Channelslack-badge go version Top language Commits since latest release


A package to pluralize words.

Originally forked from https://bitbucket.org/pkg/inflect under a MIT License.

Status

API is stable.

This library is not used at all by other go-openapi packages and is somewhat redundant with go-openapi/swag/mangling (for camelcase etc).

Currently we have one single dependency in one place in a go-swagger template (used as a funcmap).

Import this library in your project

go get github.com/go-openapi/inflect

Basic usage

A golang library applying grammar rules to English words.

This package provides a basic set of functions applying grammar rules to inflect English words, modify case style (Capitalize, camelCase, snake_case, etc.).

Acronyms are properly handled. A common use case is word pluralization.

Change log

See https://github.com/go-openapi/inflect/releases

Licensing

This library ships under the SPDX-License-Identifier: Apache-2.0.

See the license NOTICE, which recalls the licensing terms of all the pieces of software on top of which it has been built.

Other documentation

Cutting a new release

Maintainers can cut a new release by either:

  • running this workflow
  • or pushing a semver tag
    • signed tags are preferred
    • The tag message is prepended to release notes

Image Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddAcronym

func AddAcronym(word string)

func AddHuman

func AddHuman(suffix, replacement string)

func AddIrregular

func AddIrregular(singular, plural string)

func AddPlural

func AddPlural(suffix, replacement string)

func AddSingular

func AddSingular(suffix, replacement string)

func AddUncountable

func AddUncountable(word string)

func Asciify

func Asciify(word string) string

func Camelize

func Camelize(word string) string

func CamelizeDownFirst

func CamelizeDownFirst(word string) string

func Capitalize

func Capitalize(word string) string

func Dasherize

func Dasherize(word string) string

func ForeignKey

func ForeignKey(word string) string

func ForeignKeyCondensed

func ForeignKeyCondensed(word string) string

func Humanize

func Humanize(word string) string

func Ordinalize

func Ordinalize(word string) string

func Parameterize

func Parameterize(word string) string

func ParameterizeJoin

func ParameterizeJoin(word, sep string) string

func Pluralize

func Pluralize(word string) string

func Singularize

func Singularize(word string) string

func Tableize

func Tableize(word string) string

func Titleize

func Titleize(word string) string

func Typeify

func Typeify(word string) string

func Uncountables

func Uncountables() map[string]bool

func Underscore

func Underscore(word string) string

Types

type Rule

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

Rule is used by rulesets.

type Ruleset

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

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

func NewDefaultRuleset

func NewDefaultRuleset() *Ruleset

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

func NewRuleset

func NewRuleset() *Ruleset

NewRuleset creates 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 (*Ruleset) AddAcronym

func (rs *Ruleset) AddAcronym(word string)

AddAcronym is used 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 (*Ruleset) AddHuman

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

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

func (*Ruleset) AddIrregular

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

AddIrregular adds any inconsistent pluralizing/singularizing rules to the set here.

func (*Ruleset) AddPlural

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

AddPlural adds a pluralization rule.

func (*Ruleset) AddPluralExact

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

AddPluralExact adds a pluralization rule with full string match.

func (*Ruleset) AddSingular

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

AddSingular add a singular rule.

func (*Ruleset) AddSingularExact

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

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

func (*Ruleset) AddUncountable

func (rs *Ruleset) AddUncountable(word string)

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

func (*Ruleset) Asciify

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

Asciify transforms latin characters like é -> e.

func (*Ruleset) Camelize

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

Camelize makes a word camel-case: "dino_party" -> "DinoParty".

func (*Ruleset) CamelizeDownFirst

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

CamelizeDownFirst is the same as Camelcase but with first letter downcased.

func (*Ruleset) Capitalize

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

Capitalize uppercase first character.

func (*Ruleset) Dasherize

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

Dasherize uses dashes: "SomeText" -> "some-text".

func (*Ruleset) ForeignKey

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

ForeignKey makes an underscored foreign key name: "Person" -> "person_id".

func (*Ruleset) ForeignKeyCondensed

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

ForeignKeyCondensed makes a foreign key (without an underscore) "Person" -> "personid".

func (*Ruleset) Humanize

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

Humanize makes the first letter of a sentence capitalized.

Uses custom friendly replacements via AddHuman().

func (*Ruleset) Ordinalize

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

Ordinalize returns an ordinal: "1031" -> "1031st"

func (*Ruleset) Parameterize

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

Parameterize makes param safe dasherized names like "my-param".

func (*Ruleset) ParameterizeJoin

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

ParameterizeJoin makes param safe dasherized names with custom separator.

func (*Ruleset) Pluralize

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

Pluralize returns the plural form of a singular word.

func (*Ruleset) Singularize

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

Singularize returns the singular form of a plural word.

func (*Ruleset) Tableize

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

Tableize makes a rails style pluralized table name: "SuperPerson" -> "super_people".

func (*Ruleset) Titleize

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

Titleize capitalizes every word in sentence: "hello there" -> "Hello There".

func (*Ruleset) Typeify

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

Typeify makes "something_like_this" -> "SomethingLikeThis".

func (*Ruleset) Uncountables

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

func (*Ruleset) Underscore

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

Underscore makes a lowercase underscore version: "BigBen" -> "big_ben".

Jump to

Keyboard shortcuts

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