Packages

Use Maps with Atom Keys in Ecto Schemas

Current section

Files

Jump to
ecto_atomized_map lib ecto atomized_map.ex
Raw

lib/ecto/atomized_map.ex

defmodule Ecto.AtomizedMap do
@behaviour Ecto.Type
def type, do: :map
def cast(map) when is_map(map), do: {:ok, atomize(map)}
def cast(_term), do: :error
def load(map) when is_map(map), do: {:ok, atomize(map)}
def load(_term), do: :error
def dump(map) when is_map(map), do: {:ok, map}
def dump(_term), do: :error
defp atomize(map) do
ExUtils.Map.symbolize_keys(map)
end
end