Packages

Internal utils and helper snippets used across our internal projects. Copy and re-use as you like.

Current section

Files

Jump to
omtt_util lib util_random.ex
Raw

lib/util_random.ex

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
get_number(8)
end
@spec number(Integer.t) :: Integer.t
def number( length ) do
get_number( length )
end
defp get_number( length ) do
numbers = for _<-1..length, do: (:rand.uniform(10)-1)
Enum.join(numbers, "")
|> Integer.parse()
|> elem(0)
end
end