Magik.EctoEnum (Magik v0.3.0) View Source
EctoEnum helps to generate enum type and enum helper function.
You can define an enum module manually like this
defmodule MyEnum do
def enum, do: ["value1", "value2", "value3"]
def value1, do: "value1"
def value2, do: "value2"
def value3, do: "value3"
end
Now with EctoEnum you can do it with a few lines of code
defmodule MyEnum do
use Magik.EctoEnum, ["value1", "value2", "value3"]
end
It still provides same functions with manual implemented module
Use in ecto schema
EctoEnum also defines a Type module that you can used directly in Ecto schema
defmodule Order do
schema "orders do
field :first_name, :string
field :last_name, :string
field :status, MyEnum.Type
end
end
EctoEnum automatically validate value and only allow valid value