Generates memorable names similar to Xaddress or Heroku. Supports custom words, custom delimiters, and custom reducer functions.
Add haiku
to your list of dependencies in mix.exs
:
def deps do
[{:haiku, "~> 0.3.1"}]
end
iex> Haiku.build
"quiet-morning-5933"
iex> Haiku.build(delimiter: '.')
"quiet.morning.5933"
iex> Haiku.build(range: 99)
"quiet-morning-45"
iex> Haiku.build(delimiter: '.', range: 99)
"quiet.morning.45"
In your config.exs
:
config :haiku,
delimiter: '.',
range: 9999,
adjectives: ~w(autumn hidden bitter misty),
nouns: ~w(meadow sun glade bird)
reducer_module: MyModule
reducer_function: :custom_reduce
Note that
reducer_function/4
has 4-arity and expects the following order:[delimiter, adjective, noun, number]
. It must return a string. For example:def custom_reduce(delimiter, adjective, noun, number) do "#{number}#{if number, do: delimiter}#{adjective}#{noun}"" end
haiku © 2016+, Yos Riady. Released under the MIT License.
Authored and maintained by Yos Riady with help from contributors (list).