# Morph
Lightweight string transformations for Elixir.
## Installation
Add `morph` to your list of dependencies in `mix.exs`:
def deps do
[{:morph, "~> 0.0.1"}]
end
## Overview
Morph can transform strings, atoms, and lists to several formats:
Morph.to_snake "loremIpsumDolor" # => "lorem_ipsum_dolor"
Morph.to_snake_caps "loremIpsumDolor" # => 'LOREM_IPSUM_DOLOR'
Morph.to_camel "lorem_ipsum_dolor" # => 'loremIpsumDolor'
Morph.to_upper_camel "lorem_ipsum_dolor" # => 'LoremIpsumDolor'
Morph.to_dashed "lorem_ipsum_dolor" # => 'lorem-ipsum-dolor'
Morph.to_human "lorem_ipsum_dolor" # => 'Lorem ipsum dolor'
Morph.to_title "lorem_ipsum_dolor" # => 'Lorem Ipsum Dolor'
Morph.to_snake ["lifeTheUniverse", :andEverything, 42]
# => ["life_the_universe", "and_everything", 42]
## Examples
### Snake case
Converts a string, atom or list to snake case.
iex> Morph.to_snake "Lorem ipsum dolor"
"lorem_ipsum_dolor"
iex> Morph.to_snake [:loremIpsum, "life-the-universe", "And Everything", 42]
["lorem_ipsum", "life_the_universe", "and_everything", 42]
### Caps snake case
Converts a string, atom, or list to upper (screaming) snake case.
iex> Morph.to_snake_caps "Lorem ipsum dolor"
"LOREM_IPSUM_DOLOR"
iex> Morph.to_snake_caps [:loremIpsum, "life-the-universe", "And Everything", 42]
["LOREM_IPSUM", "LIFE_THE_UNIVERSE", "AND_EVERYTHING", 42]
### Dashed
Converts a string, atom, or list to dashed format.
iex> Morph.to_dashed "Lorem ipsum dolor"
"lorem-ipsum-dolor"
iex> Morph.to_dashed [:loremIpsum, "life.the.universe", "And Everything", 42]
["lorem-ipsum", "life-the-universe", "and-everything", 42]
### Camel
Converts a string, atom, or list to camel case.
iex> Morph.to_camel "Lorem ipsum dolor"
"loremIpsumDolor"
iex> Morph.to_camel [:loremIpsum, "life_the_universe", "And Everything", 42]
["loremIpsum", "lifeTheUniverse", "andEverything", 42]
### Upper camel case
Converts a string, atom, or list to upper camel case.
iex> Morph.to_upper_camel "Lorem ipsum dolor"
"LoremIpsumDolor"
iex> Morph.to_upper_camel [:loremIpsum, "life_the_universe", "And Everything", 42]
["LoremIpsum", "LifeTheUniverse", "AndEverything", 42]
## Human format
Converts a string, atom or list to human format.
iex> Morph.to_human "Lorem ipsum dolor"
"Lorem ipsum dolor"
iex> Morph.to_human [:loremIpsum, "life_the_universe", "And Everything", 42]
["Lorem ipsum", "Life the universe", "And everything", 42]
## Title format
Converts a string, atom, or list to title format
iex> Morph.to_title "Lorem ipsum dolor"
"Lorem Ipsum Dolor"
iex> Morph.to_title [:loremIpsum, "life_the_universe", "And Everything", 42]
["Lorem Ipsum", "Life The Universe", "And Everything", 42]