Current section

Files

Jump to
localize lib localize validity territory.ex
Raw

lib/localize/validity/territory.ex

defmodule Localize.Validity.Territory do
@moduledoc false
use Localize.Validity, :territories
@behaviour Localize.Validity
def validate(nil) do
{:ok, nil, nil}
end
def validate(code) when is_binary(code) or is_atom(code) do
code
|> normalize()
|> valid()
|> case do
{:error, _} -> {:error, code}
{:ok, code, status} -> {:ok, String.to_atom(code), status}
end
end
def normalize(code) when is_integer(code) do
case code do
code when code < 10 -> "00#{code}"
code when code < 100 -> "0#{code}"
_ -> "#{code}"
end
end
def normalize(code) when is_binary(code) do
String.upcase(code)
end
def normalize(nil) do
nil
end
def normalize(code) when is_atom(code) do
code
|> Atom.to_string()
|> normalize()
end
end