Module: CallbackHelpers
- Defined in:
- lib/potassium/helpers/callback-helpers.rb
Instance Method Summary collapse
- #after(action_name, wrap_in_action: false, &action) ⇒ Object
- #before(action_name, wrap_in_action: false, &action) ⇒ Object
- #run_action(action_name, &action) ⇒ Object
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 |