Current section

Files

Jump to
gate lib validators each.ex
Raw

lib/validators/each.ex

defmodule Gate.Validators.Each do
@moduledoc false
alias Gate.Locale
defmacro __using__(_opts) do
quote do
def validate([head|tail] = value, {:each, option}) when is_map(option) do
case Gate.valid?(head, option) do
{:ok, _params} -> true
{:error, errors} -> errors
end
end
def validate([head|tail] = value, {:each, option}) do
with true <- validate(head, option)
do
validate(tail, {:each, option})
end
end
def validate([], {:each, _option}), do: true
def validate(value, {:each, _options}), do: Locale.get("list", value)
end
end
end