Current section
Files
Jump to
Current section
Files
lib/faker.ex
defmodule Faker do
import Calcs
import Converter
def paragraph(num_words \\ 100) do
paragraph(num_words, [])
end
def paragraph(num_words, total_words) when num_words == 0 do
Enum.join(total_words, " ")
end
def paragraph(num_words, total_words) when num_words > 0 do
given_word = (word |> check_capital(total_words))
paragraph(num_words - 1, total_words ++ [given_word])
end
def word do
random()
|> round_up
|> to_string_binary
end
def to_string_binary(x) do
Integer.to_string(x, 36)
|> String.downcase
|> put_period
end
def put_period(word) do
~r{[Aa]}
|> Regex.named_captures(word)
|> put_period(word)
end
def put_period(%{}, word) do
"#{word}."
end
def put_period(nil, word) do
"#{word}"
end
def check_capital(word, [ head | tail ]) do
~r{\.}
|> capture_regex([ head | tail ])
|> maybe_capitalize(word)
end
def capture_regex(regex, arr) do
last = Enum.at(arr, -1)
|> String.last()
Regex.named_captures(regex, last)
end
def check_capital(word, []) do
word
end
def maybe_capitalize(nil, word) do
word
end
def maybe_capitalize(%{}, word) do
String.capitalize(word)
end
end