readly v0.1.1 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

Macros

define readonly macro

  • Put map to module attributes
  • Define specific function

Macros

readonly(item, function_name)

define readonly macro

  • Put map to module attributes
  • Define specific function