Git Product home page Git Product logo

inflect's Introduction

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"

inflect's People

Contributors

markbates avatar chrisfarms avatar paganotoni avatar hirochachacha avatar moorereason avatar stanislas-m avatar bep avatar roktas avatar s7v7nislands avatar

Watchers

Matthew Clark avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.