Support for the Ruby 2.4 series has ended. See here for reference.
Helper module for easily defining exceptions with predefined messages.
1.
class Foo extend Exception2MessageMapper def_e2message ExistingExceptionClass, "message..." def_exception :NewExceptionClass, "message..."[, superclass] ... end
2.
module Error extend Exception2MessageMapper def_e2message ExistingExceptionClass, "message..." def_exception :NewExceptionClass, "message..."[, superclass] ... end class Foo include Error ... end foo = Foo.new foo.Fail ....
3.
module Error extend Exception2MessageMapper def_e2message ExistingExceptionClass, "message..." def_exception :NewExceptionClass, "message..."[, superclass] ... end class Foo extend Exception2MessageMapper include Error ... end Foo.Fail NewExceptionClass, arg... Foo.Fail ExistingExceptionClass, arg...
Fail(err, *rest)
err: exception rest: message arguments
# File e2mmap.rb, line 85 def Raise(err = nil, *rest) E2MM.Raise(self, err, *rest) end
# File e2mmap.rb, line 64 def bind(cl) self.module_eval "#{<<-"begin;"}\n#{<<-"end;"}", __FILE__, __LINE__+1 begin; def Raise(err = nil, *rest) Exception2MessageMapper.Raise(self.class, err, *rest) end alias Fail Raise class << self undef included end def self.included(mod) mod.extend Exception2MessageMapper end end; end
def_e2message
(c, m)
c: exception m: message_form define exception c with message m.
# File e2mmap.rb, line 96 def def_e2message(c, m) E2MM.def_e2message(self, c, m) end
def_exception
(n, m, s)
n: exception_name m: message_form s: superclass(default: StandardError) define exception named ``c'' with message m.
# File e2mmap.rb, line 106 def def_exception(n, m, s = StandardError) E2MM.def_exception(self, n, m, s) end