An inflection engine for golang
This is a new inflection engine to replace https://github.com/markbates/inflect designed to be more modular, more readable, and easier to fix issues on than the original.
Flect provides word inflection features such as Singularize
and Pluralize
for English nouns and text utility features such as Camelize
, Capitalize
,
Humanize
, and more.
Due to the flexibly-complex nature of English noun inflection, it is almost impossible to cover all exceptions (such as identical/irregular plural). With this reason along with the main purpose of Flect, which is to make it easy to develop web application in Go, Flect has limitations with its own rules.
InsertPlural()
, InsertSingular()
, or LoadInfrections()
.inflections.json
in your application root,
the file will be automatically loaded as your custom inflection dictionary.$ go get github.com/gobuffalo/flect
github.com/gobuffalo/flect
The github.com/gobuffalo/flect
package contains "basic" inflection tools, like pluralization, singularization, etc...
Ident
TypeIn addition to helpful methods that take in a string
and return a string
, there is an Ident
type that can be used to create new, custom, inflection rules.
The Ident
type contains two fields.
Original
- This is the original string
that was used to create the Ident
Parts
- This is a []string
that represents all of the "parts" of the string, that have been split apart, making the segments easier to work withExamples of creating new inflection rules using Ident
can be found in the github.com/gobuffalo/flect/name
package.
github.com/gobuffalo/flect/name
The github.com/gobuffalo/flect/name
package contains more "business" inflection rules like creating proper names, table names, etc...