Magik.EctoEnum (magik v0.1.1)

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

schema "orders do

field :first_name, :string
field :last_name, :string
field :status, MyEnum.Type

end

EctoEnum automatically validate value and only allow valid value