Skip to content
An Inflector library for Elixir
Branch: master
Clone or download
Pull request Compare This branch is 1 commit ahead, 2 commits behind nurugger07:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
LICENSE
README.md
mix.exs
mix.lock

README.md

Inflex Build Status

An Elixir library for handling word inflections.

Getting Started

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.10.0" } ]
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

Examples

Singularize & Pluralize

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"

Inflect

iex(1)> Inflex.inflect("child", 1)
"child"

iex(2)> Inflex.inflect("child", 2)
"children"

Camelize & Pascalize

Inflex also camelizes or pascalizes strings and atoms.

iex(1)> Inflex.camelize(:upper_camel_case)
"UpperCamelCase"

iex(2)> Inflex.camelize("pascal-case", :lower)
"pascalCase"

Parameterize

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"

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"

Contributing

All pull requests will be reviewed for inclusion but must include tests.

You can’t perform that action at this time.