readly v0.0.2 Readly
This is Readly module.
Example
defmodule Gender do
use Readly, struct: %{id: nil, name: ""}
readonly %{id: 1, name: "Man"}, "man"
readonly %{id: 1, name: "Woman"}, :woman
readonly %{id: 1, name: "Trans"}, :trans
end
use with ecto
defmodule User do
use Ecto.Schema
import Ecto.Changeset
schema "users" do
field :name, :string
field :gender, Gender
end
def changeset(user, params \\ :invalid) do
user
|> cast(params, ~w(name gender), ~w())
end
end
user = Repo.one(User)
user.gender == Gender.woman
summary
Summary
Macros
define readonly macro
- Put map to module attributes
- Define specific function