An Elixir library for handling word inflections.
You can add Inflex as a dependency in your mix.exs
file. Since it only requires Elixir and Erlang there are no other dependencies.
def deps do
[ { :inflex, "~> 1.8.1" } ]
end
If you are not using hex you can add the dependency using the github repo.
def deps do
[ { :inflex, github: "nurugger07/inflex" } ]
end
Then run mix deps.get
in the shell to fetch and compile the dependencies.
To incorporate Inflex in your modules, use import
.
defmodule YourModule do
import Inflex
def make_singular(word), do: singularize(word)
end
Here are some basic examples from iex
:
iex(1)> Inflex.singularize("dogs")
"dog"
iex(2)> Inflex.pluralize("dog")
"dogs"
iex(3)> Inflex.singularize("people")
"person"
iex(4)> Inflex.pluralize("person")
"people"
Some other special cases are handled for nouns ending in -o and -y
iex(1)> Inflex.pluralize("piano")
"pianos"
iex(2)> Inflex.pluralize("hero")
"heroes"
iex(3)> Inflex.pluralize("butterfly")
"butterflies"
iex(4)> Inflex.pluralize("monkey")
"monkeys"
iex(1)> Inflex.inflect("child", 1)
"child"
iex(2)> Inflex.inflect("child", 2)
"children"
Inflex also camelizes or pascalizes strings and atoms.
iex(1)> Inflex.camelize(:upper_camel_case)
"UpperCamelCase"
iex(2)> Inflex.camelize("pascal-case", :lower)
"pascalCase"
Strings can be parameterized easily.
iex(1)> Inflex.parameterize("String for parameter")
"string-for-parameter"
iex(2)> Inflex.parameterize("String with underscore", "_")
"string_with_underscore"
Makes an underscored, lowercase form from a string or atom.
iex(1)> Inflex.underscore("UpperCamelCase")
"upper_camel_case"
iex(2)> Inflex.underscore("pascalCase")
"pascal_case"
iex(3)> Inflex.underscore(UpperCamelCase)
"upper_camel_case"
iex(4)> Inflex.underscore(:pascalCase)
"pascal_case"
All pull requests will be reviewed for inclusion but must include tests.