Module: Exceptor::ClassMethods

Defined in:
lib/exceptor/class_methods.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



4
5
6
7
8
# 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

Instance Method Details

#exceptor(constant = nil, &block) ⇒ Object



10
11
12
13
14
15
16
17
# 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