From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-12-08T11:06:37+09:00 Subject: [ruby-dev:3765] Re: new delegator けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :3721 ] the message: "[ruby-dev:3721] Re: new delegator ", on Dec/01 18:00(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >でもって変更したdelegate.rbです これなんですが... >-- >def self.#{method}(*args, &block) > begin > __getobj__.__send__(:#{method}, *args, &block) > rescue Exception > c = -caller(0).size > if /:in `__getobj__'$/ =~ $@[c-1] #` > n = 1 > else > c -= 2 > n = 3 c -= 1 n = 2 > end > $@[c,n] = nil > raise > end >end ではないですかね? test-delegator.rb:118:in `test': this is OK (RuntimeError) from (eval):2:in `__send__' from (eval):2:in `test' from test-delegator.rb:122 こうなっているところの, 間の2つを削りたいんですよね? 今のままだと, test-delegator.rb:122: this is OK (RuntimeError) となってわけ分からん. メッセージになってしまいます. # 一応例のパッチ当てています. PS. あと, delegate.rbのテストプログラムバグっています. foo = Object.new def foo.test raise 'this is OK' end foo2 = SimpleDelegator.new(foo) p foo.hash == foo2.hash # => true ^ 例が悪い foo.test # raise error! ^ foo2 でしょう? __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---