diff options
Diffstat (limited to 'ruby_1_8_6/lib/e2mmap.rb')
-rw-r--r-- | ruby_1_8_6/lib/e2mmap.rb | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/ruby_1_8_6/lib/e2mmap.rb b/ruby_1_8_6/lib/e2mmap.rb deleted file mode 100644 index 3e2604af5d..0000000000 --- a/ruby_1_8_6/lib/e2mmap.rb +++ /dev/null @@ -1,195 +0,0 @@ -# -# e2mmap.rb - for ruby 1.1 -# $Release Version: 2.0$ -# $Revision: 1.10 $ -# $Date: 1999/02/17 12:33:17 $ -# by Keiju ISHITSUKA -# -# -- -# Usage: -# -# U1) -# class Foo -# extend Exception2MessageMapper -# def_e2message ExistingExceptionClass, "message..." -# def_exception :NewExceptionClass, "message..."[, superclass] -# ... -# end -# -# U2) -# module Error -# extend Exception2MessageMapper -# def_e2meggage ExistingExceptionClass, "message..." -# def_exception :NewExceptionClass, "message..."[, superclass] -# ... -# end -# class Foo -# include Error -# ... -# end -# -# foo = Foo.new -# foo.Fail .... -# -# U3) -# 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 "Use Ruby 1.1" if VERSION < "1.1" - -module Exception2MessageMapper - @RCS_ID='-$Id: e2mmap.rb,v 1.10 1999/02/17 12:33:17 keiju Exp keiju $-' - - E2MM = Exception2MessageMapper - - def E2MM.extend_object(cl) - super - cl.bind(self) unless cl == E2MM - end - - # backward compatibility - def E2MM.extend_to(b) - c = eval("self", b) - c.extend(self) - end - - def bind(cl) - self.module_eval %[ - def Raise(err = nil, *rest) - Exception2MessageMapper.Raise(self.class, err, *rest) - end - alias Fail Raise - - def self.included(mod) - mod.extend Exception2MessageMapper - end - ] - end - - # Fail(err, *rest) - # err: exception - # rest: message arguments - # - def Raise(err = nil, *rest) - E2MM.Raise(self, err, *rest) - end - alias Fail Raise - - # backward compatibility - alias fail! fail - def fail(err = nil, *rest) - begin - E2MM.Fail(self, err, *rest) - rescue E2MM::ErrNotRegisteredException - super - end - end - class << self - public :fail - end - - - # def_e2message(c, m) - # c: exception - # m: message_form - # define exception c with message m. - # - 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. - # - def def_exception(n, m, s = StandardError) - E2MM.def_exception(self, n, m, s) - end - - # - # Private definitions. - # - # {[class, exp] => message, ...} - @MessageMap = {} - - # E2MM.def_exception(k, e, m) - # k: class to define exception under. - # e: exception - # m: message_form - # define exception c with message m. - # - def E2MM.def_e2message(k, c, m) - E2MM.instance_eval{@MessageMap[[k, c]] = m} - c - 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. - # - def E2MM.def_exception(k, n, m, s = StandardError) - n = n.id2name if n.kind_of?(Fixnum) - e = Class.new(s) - E2MM.instance_eval{@MessageMap[[k, e]] = m} - k.const_set(n, e) - end - - # Fail(klass, err, *rest) - # klass: class to define exception under. - # err: exception - # rest: message arguments - # - def E2MM.Raise(klass = E2MM, err = nil, *rest) - if form = e2mm_message(klass, err) - $! = err.new(sprintf(form, *rest)) - $@ = caller(1) if $@.nil? - #p $@ - #p __FILE__ - $@.shift if $@[0] =~ /^#{Regexp.quote(__FILE__)}:/ - raise - else - E2MM.Fail E2MM, ErrNotRegisteredException, err.inspect - end - end - class <<E2MM - alias Fail Raise - end - - def E2MM.e2mm_message(klass, exp) - for c in klass.ancestors - if mes = @MessageMap[[c,exp]] - #p mes - m = klass.instance_eval('"' + mes + '"') - return m - end - end - nil - end - class <<self - alias message e2mm_message - end - - E2MM.def_exception(E2MM, - :ErrNotRegisteredException, - "not registerd exception(%s)") -end - - |