aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/concerns/control_flow.rb
blob: 0f41a1cdae03daa3f93c17720369bab08a9673f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
module ControlFlow
  FinishAction = Class.new RuntimeError

  def self.included into
    into.rescue_from FinishAction, with: :catch_finish_action
  end

  # Allow to exit locally inside an action after rendering (especially in error cases)
  def catch_finish_action; end

  def finish_action! msg = 'finish action'
    raise FinishAction, msg
  end
end