| 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