Skip to content

Instantly share code, notes, and snippets.

@mschae
Created October 17, 2014 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mschae/56e7ad574405ca53f30a to your computer and use it in GitHub Desktop.
Save mschae/56e7ad574405ca53f30a to your computer and use it in GitHub Desktop.
for event <- [:before_save, :before_update, :before_delete] do
defmacro unquote(event)(function) do
quote bind_quoted: [event: event] do
Ecto.Model.Callbacks.register_callback(__MODULE__, event, unquote(function))
def __callbacks__(:before_save), do: Keyword.get_values(@ecto_callbacks, :before_save)
end
end
end
@chrismccord
Copy link

  for event <- [:before_save, :before_update, :before_delete] do
    defmacro unquote(event)(function) do
      event = unquote(event)
      quote unquote: true, bind_quoted: [event: event] do
        Ecto.Model.Callbacks.register_callback(__MODULE__, event, unquote(function))
        def __callbacks__(:before_save), do: Keyword.get_values(@ecto_callbacks, :before_save)
      end
    end
  end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment