Current section
Files
Jump to
Current section
Files
lib/validators/generic.ex
defmodule Gate.Validators.Generic do
@moduledoc false
alias Gate.Locale
defmacro __using__(_opts) do
quote do
def validate(value, {:equal, expected}) do
if value == expected, do: true, else: Locale.get("equal", [value, expected])
end
def validate(value, {:not_equal, expected}) do
if value != expected,
do: true,
else: Locale.get("not_equal", [value, expected])
end
def validate(value, {:include, list}) do
if Enum.member?(list, value),
do: true,
else: Locale.get("include", [value, list])
end
def validate(value, {:custom, function }) when is_function(function) do
case function.(value) do
{:locale, name, args} -> Locale.get(name, args)
value -> value
end
end
end
end
end