module Exceptor::ClassMethods

Public Class Methods

extended(base) click to toggle source
# File lib/exceptor/class_methods.rb, line 4
def self.extended(base)
  base.extend(ClassAttr)
  base.class_attr :_default_exceptor
  base.define_singleton_method(:default_exceptor) { |param| self._default_exceptor = param }
end

Public Instance Methods

exceptor(constant = nil,&block) click to toggle source
# File lib/exceptor/class_methods.rb, line 10
def exceptor(constant = nil,&block)
  constant ||= self._default_exceptor
  begin
    block.call
  rescue => e
    instance_exec(ContextDelegator.new(block.binding),e,&constant.exceptors[e.class])
  end
end