README.md

# 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]