Current section

Files

Jump to
Raw

lib/regex.ex

defmodule ParamsValidation.Regex do
defmacro __using__(opts) do
regex = opts |> Keyword.fetch!(:regex)
quote do
@behaviour Ecto.Type
def type, do: :string
def cast(value) when is_bitstring(value) or is_number(value) do
if Regex.match?(unquote(regex), value),
do: {:ok, value},
else: :error
end
def cast(_), do: :error
def load(_), do: :error
def dump(_), do: :error
end
end
end