README.md

# Henchman

[![Build Status](https://travis-ci.org/elepunk/henchman.svg?branch=master)](https://travis-ci.org/elepunk/henchman)
[![Hex Downloads](https://img.shields.io/hexpm/dt/henchman.svg)](https://hex.pm/packages/henchman)
[![Hex Version](https://img.shields.io/hexpm/v/henchman.svg)](https://hex.pm/packages/henchman)

A set of helpers for elixir.

## Installation

Add `henchman` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [{:henchman, "~> 0.3.0"}]
end
```

## Usage

Henchman provides a set helpers that will come in handy.

### Randomizer

Generate random string for a specific length. There are 4 types supported:
* ```:alphanumeric``` - Random alphanumeric string
* ```:numeric``` - Random numeric only string
* ```:upper``` - Random non-numeric only string
* ```:lower```- Random non-numeric only string

```elixir
iex> Henchman.Randomizer.generate(20) #generate alphanumeric string
iex> Henchman.Randomizer.generate(20, :numeric) #generate numeric only string
```

### String Helpers

##### acronym/1

Generate acronym from string.

```elixir
iex> Henchman.String.acronym("foo bar")#FB
```

##### camel_case/1

Convert string to ```camelCase```.

```elixir
iex> Henchman.String.camel_case("foo-bar")#fooBar
```

##### is_alpha?/1

Determine if string contains alphabets only.

```elixir
iex> Henchman.String.is_alpha?("fooBAR")#true
```

##### is_alphanumeric?/1

Determine if string contains alphabets and integers.

```elixir
iex> Henchman.String.is_alphanumeric?("123fooBAR")#true
```

##### is_blank?/1

Determine if string is blank.

```elixir
iex> Henchman.String.is_blank?("")#true
```

##### is_lowercase?/1

Determine if string contains lower case characters only.

```elixir
iex> Henchman.String.is_lowercase?("foo")#true
```

##### is_numeric?/1

Determine if string contains integers only.

```elixir
iex> Henchman.String.is_numeric?("123")#true
```

##### is_uppercase?/1

Determine if string contains upper case characters only.

```elixir
iex> Henchman.String.is_uppercase?("BAR")#true
```

##### slug/1 or slug/2

Convert string to slug format.

```elixir
iex> Henchman.String.slug("Foo bar")#foo-bar
iex> Henchman.String.slug("Foo bar", "_")#foo_bar
```

##### snake_case/1 or snake_case/2

Convert string to ```snake_case```.

```elixir
iex> Henchman.String.snake_case("FooBar")#foo_bar
iex> Henchman.String.snake_case("FooBar", "-")#foo-bar
```

##### studly_case/1

Convert string to ```StudlyCase```.

```elixir
iex> Henchman.String.studly_case("foo-bar")#FooBar
```

##### title_case/1

Capitalize every first letters in a string.

```elixir
iex> Henchman.String.title_case("foo bar-baz")#Foo Bar-baz
```

##### limit/2 or word_limit/2

The string module can either truncate characters or words within a string.

```elixir
iex> Henchman.String.limit("Foo bar baz baz", 10)#Foo bar ba....
iex> Henchman.String.word_limit("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", 7)#Lorem ipsum dolor sit amet, consectetur adipiscing...
```

## License

Released under the MIT license - see ```LICENSE``` for details.