defmodule OMTT.Util.Random do @spec string(String.t) :: String.t def string( length ) do get_string( length ) end @spec string() :: String.t def string() do get_string( 8 ) end defp get_string( length ) do alphabet = "abcdefghijklmnopqrstuvwxyz" <> "ABCDEFGHIJKLMNOPQRSTUVWXYZ" <> "0123456789" alphabet_length = alphabet |> String.length 1..length |> Enum.map_join(fn(_) -> alphabet |> String.at(:rand.uniform( alphabet_length ) - 1) end) end @spec number() :: Integer.t def number() do number(8) end @spec number(Integer.t) :: Integer.t def number( length ) do round(:rand.uniform(round(:math.pow(10, length) - :math.pow(10, length-1))) + :math.pow(10, length-1)) - 1 end end