Current section
Files
Jump to
Current section
Files
lib/exnumerable.ex
defmodule Exnumerable do
defmacro __using__(opts) do
quote location: :keep, bind_quoted: [values: opts[:values]] do
@behaviour Ecto.Type
def type, do: :string
def values, do: unquote(values)
for value <- values, atom = value, string = Atom.to_string(value) do
def cast(unquote(string)), do: {:ok, unquote(atom)}
def cast(unquote(atom)), do: {:ok, unquote(atom)}
def load(unquote(string)), do: {:ok, unquote(atom)}
def dump(unquote(string)), do: {:ok, unquote(string)}
def dump(unquote(atom)), do: {:ok, unquote(string)}
end
def cast(_), do: :error
def load(_), do: :error
def dump(_), do: :error
end
end
end