module ActiveInteraction::Extras::RunCallback

Public Instance Methods

after_failed_run(*args, &block) click to toggle source

See after_run

# File lib/active_interaction/extras/run_callback.rb, line 47
def after_failed_run(*args, &block)
  opts = args.extract_options!
  opts[:if] = [:after_run_callback_enabled?] + Array(opts[:if])
  opts[:unless] = [:valid?] + Array(opts[:unless])

  set_callback :run, :after, *args, opts, &block
end
after_run(*args, &block) click to toggle source

Run callback is executed outside transaction if transaction is used. Make sure code in after_run hook can't fail, so preferably only run async code here

# File lib/active_interaction/extras/run_callback.rb, line 30
def after_run(*args, &block)
  opts = args.extract_options!
  opts[:if] = [:after_run_callback_enabled?] + Array(opts[:if])

  set_callback :run, :after, *args, opts, &block
end
after_run_callback_enabled?() click to toggle source
# File lib/active_interaction/extras/run_callback.rb, line 14
def after_run_callback_enabled?
  !@after_run_callback_disabled
end
after_successful_run(*args, &block) click to toggle source

See after_run only runs when service has successfully finished and outcome is valid

# File lib/active_interaction/extras/run_callback.rb, line 39
def after_successful_run(*args, &block)
  opts = args.extract_options!
  opts[:if] = [:valid?, :after_run_callback_enabled?] + Array(opts[:if])

  set_callback :run, :after, *args, opts, &block
end
disable_after_run_callback() click to toggle source

This is useful for testing

# File lib/active_interaction/extras/run_callback.rb, line 23
def disable_after_run_callback
  @after_run_callback_disabled = true
end
enable_after_run_callback() click to toggle source
# File lib/active_interaction/extras/run_callback.rb, line 18
def enable_after_run_callback
  @after_run_callback_disabled = false
end
run() click to toggle source
Calls superclass method
# File lib/active_interaction/extras/run_callback.rb, line 8
def run
  run_callbacks(:run) do
    super
  end
end