Module | Exception2MessageMapper::E2MM |
In: |
Fail(klass, err, *rest)
klass: class to define exception under. err: exception rest: message arguments
# File lib/e2mmap.rb, line 160 160: def E2MM.Raise(klass = E2MM, err = nil, *rest) 161: if form = e2mm_message(klass, err) 162: $! = err.new(sprintf(form, *rest)) 163: $@ = caller(1) if $@.nil? 164: #p $@ 165: #p __FILE__ 166: $@.shift if $@[0] =~ /^#{Regexp.quote(__FILE__)}:/ 167: raise 168: else 169: E2MM.Fail E2MM, ErrNotRegisteredException, err.inspect 170: end 171: end
E2MM.def_exception(k, e, m)
k: class to define exception under. e: exception m: message_form define exception c with message m.
# File lib/e2mmap.rb, line 136 136: def E2MM.def_e2message(k, c, m) 137: E2MM.instance_eval{@MessageMap[[k, c]] = m} 138: c 139: end
E2MM.def_exception(k, n, m, s)
k: class to define exception under. n: exception_name m: message_form s: superclass(default: StandardError) define exception named ``c'' with message m.
# File lib/e2mmap.rb, line 148 148: def E2MM.def_exception(k, n, m, s = StandardError) 149: n = n.id2name if n.kind_of?(Fixnum) 150: e = Class.new(s) 151: E2MM.instance_eval{@MessageMap[[k, e]] = m} 152: k.const_set(n, e) 153: end
# File lib/e2mmap.rb, line 176 176: def E2MM.e2mm_message(klass, exp) 177: for c in klass.ancestors 178: if mes = @MessageMap[[c,exp]] 179: #p mes 180: m = klass.instance_eval('"' + mes + '"') 181: return m 182: end 183: end 184: nil 185: end
# File lib/e2mmap.rb, line 58 58: def E2MM.extend_object(cl) 59: super 60: cl.bind(self) unless cl == E2MM 61: end