Module: CallbackHelpers

Defined in:
lib/potassium/helpers/callback-helpers.rb

Instance Method Summary collapse

Instance Method Details

#after(action_name, wrap_in_action: false, &action) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/potassium/helpers/callback-helpers.rb', line 2

def after(action_name, wrap_in_action: false, &action)
  ensure_callbacks_variables_for_action(action_name)

  if get(:executed_actions).include?(action_name)
    instance_exec(&wrap_action(action, wrap_in_action))
  else
    add_callback(action_name, :after, wrap_action(action, wrap_in_action))
  end
end

#before(action_name, wrap_in_action: false, &action) ⇒ Object



12
13
14
15
# File 'lib/potassium/helpers/callback-helpers.rb', line 12

def before(action_name, wrap_in_action: false, &action)
  ensure_callbacks_variables_for_action(action_name)
  add_callback(action_name, :before, wrap_action(action, wrap_in_action))
end

#run_action(action_name, &action) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/potassium/helpers/callback-helpers.rb', line 17

def run_action(action_name, &action)
  ensure_callbacks_variables_for_action(action_name)
  callbacks = get(:callbacks)[action_name]

  callbacks[:before].each { |callback| instance_exec(&callback) }
  instance_exec(&action)
  get(:executed_actions) << action_name
  callbacks[:after].each { |callback| instance_exec(&callback) }
end