class HaveAPI::Extensions::ActionExceptions

Public Class Methods

enabled(server) click to toggle source
# File lib/haveapi/extensions/action_exceptions.rb, line 6
def enabled(server)
  HaveAPI::Action.connect_hook(:exec_exception) do |ret, _context, e|
    break(ret) unless @exceptions

    @exceptions.each do |handler|
      if e.is_a?(handler[:klass])
        ret = handler[:block].call(ret, e)
        break
      end
    end

    ret
  end
end
rescue(klass, &block) click to toggle source
# File lib/haveapi/extensions/action_exceptions.rb, line 21
def rescue(klass, &block)
  @exceptions ||= []
  @exceptions << { klass:, block: }
end