diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-05-19 07:39:57 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-05-19 07:39:57 +0000 |
commit | 369fe1e8394b494c78d56aedfe6b0b809d7d1c10 (patch) | |
tree | 07c13f9e2b892f8891e4a3d77137243ae05caf9e /lib/e2mmap.rb | |
parent | 06d812a71ba3c6525a063257512c9ec007c272cf (diff) |
1.1b9_22
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/e2mmap.rb')
-rw-r--r-- | lib/e2mmap.rb | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/e2mmap.rb b/lib/e2mmap.rb index d9acf5603a..307b07dfbe 100644 --- a/lib/e2mmap.rb +++ b/lib/e2mmap.rb @@ -1,8 +1,8 @@ # # e2mmap.rb - for ruby 1.1 # $Release Version: 1.1$ -# $Revision: 1.4 $ -# $Date: 1997/08/18 07:12:12 $ +# $Revision: 1.7 $ +# $Date: 1998/05/19 04:38:33 $ # by Keiju ISHITSUKA # # -- @@ -13,10 +13,10 @@ if VERSION < "1.1" else module Exception2MessageMapper - RCS_ID='-$Header: /home/keiju/var/src/var.lib/ruby/RCS/e2mmap.rb,v 1.4 1997/08/18 07:12:12 keiju Exp keiju $-' + RCS_ID='-$Header: /home/keiju/var/src/var.lib/ruby/RCS/e2mmap.rb,v 1.7 1998/05/19 04:38:33 keiju Exp keiju $-' E2MM = Exception2MessageMapper - + def E2MM.extend_object(cl) super cl.bind(self) @@ -37,16 +37,16 @@ else def bind(cl) self.module_eval %q^ - E2MM_ErrorMSG = {} + E2MM_ErrorMSG = {} unless self.const_defined?(:E2MM_ErrorMSG) # fail(err, *rest) # err: 例外 # rest: メッセージに渡すパラメータ # def self.fail(err = nil, *rest) - $@ = caller(0) if $@.nil? - $@.shift if form = E2MM_ErrorMSG[err] $! = err.new(sprintf(form, *rest)) + $@ = caller(0) if $@.nil? + $@.shift # e2mm_fail() raise() # elsif self == Exception2MessageMapper @@ -72,13 +72,21 @@ else # def_exception(c, m) # n: exception_name # m: message_form - # s: 例外スーパークラス(デフォルト: StandardError) + # s: 例外スーパークラス(デフォルト: Exception) # 例外名``c''をもつ例外を定義し, そのメッセージをmとする. # #def def_exception(n, m) - def self.def_exception(n, m, s = StandardError) + def self.def_exception(n, m, s = nil) n = n.id2name if n.kind_of?(Fixnum) + unless s + if defined?(StandardError) + s = StandardError + else + s = Exception + end + end e = Class.new(s) + const_set(n, e) E2MM_ErrorMSG[e] = m # const_get(:E2MM_ErrorMSG)[e] = m |