Callbackex v0.1.1 Callbackex
Define a Callbackex
A callbackex is used to define, organize and invoke callbacks
Example
defmodule UserProcessor do
# Use Callbackex
use Callbackex, :before_create, :after_create
# Define callbacks
callbacks do
before_create :check_ip
before_create User.ValidateName, limit: 10
after_create Indexer, index: :user
after_create AuditLog, operation: :create
end
# Use callbacks
def create(params) do
with {:ok, params} <- invoke_callback(:before_create, params),
{:ok, user} <- do_create_user(params),
{:ok, user} <- invoke_callback(:after_create, user) do
{:ok, user}
end
end
end
Reflection
Any callbackex module will generate the callbackex function that can be used for runtime introspection of the callbacks
__callbackex__(:callbacks)
- Returns the callback names defined__callbackex__(:callback, callback)
- Returns the callback call corresponding to given callback
Summary
Functions
do_invoke_callback(module, callback, value)
do_invoke_callback(module, atom, any) :: Callbackex.Context.t