iban-ex/lib/iban_ex/commons/commons.ex

28 lines
608 B
Elixir

defmodule IbanEx.Commons do
@moduledoc false
@spec blank(nil | binary()) :: nil | binary()
def blank(nil), do: nil
def blank(""), do: nil
def blank(string) when is_binary(string), do: string
@spec normalize(binary()) :: binary()
def normalize(string) do
string
|> to_string()
|> String.replace(~r/\s*/i, "")
|> String.upcase()
end
@spec normalize_and_slice(binary(), Range.t()) :: binary()
def normalize_and_slice(string, range) do
string
|> normalize()
|> String.slice(range)
# |> case do
# "" -> nil
# result -> result
# end
end
end