Class: Triggerable::Actions::LambdaAction
- Defined in:
- lib/triggerable/actions/lambda_action.rb
Instance Method Summary collapse
-
#initialize(block) ⇒ LambdaAction
constructor
A new instance of LambdaAction.
- #run_for!(object, trigger_name) ⇒ Object
Methods inherited from Action
Constructor Details
#initialize(block) ⇒ LambdaAction
Returns a new instance of LambdaAction.
4 5 6 |
# File 'lib/triggerable/actions/lambda_action.rb', line 4 def initialize(block) @block = block end |
Instance Method Details
#run_for!(object, trigger_name) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/triggerable/actions/lambda_action.rb', line 8 def run_for!(object, trigger_name) proc = @block object.instance_eval do change_whodunnit = trigger_name.present? && defined?(PaperTrail) paper_trail = (defined?(PaperTrail::Request) ? PaperTrail.request : PaperTrail) if change_whodunnit old_whodunnit = nil if change_whodunnit old_whodunnit = paper_trail.whodunnit paper_trail.whodunnit = trigger_name end begin instance_exec(&proc) ensure paper_trail.whodunnit = old_whodunnit if change_whodunnit end end end |