ごとけんです

In message "[ruby-list:8462] Re: how to use delegate"
    on 98/06/22, IWAOKA Masahiro <iwaoka / fr.a.u-tokyo.ac.jp> writes:
>岩岡です。

>In message <199806190835.RAA04685 / picachu.netlab.co.jp>
>	matz / netlab.co.jp (Yukihiro Matsumoto) writes:

>> def DelegateClass(superclass)
>>   klass = Class.new
>>   methods = superclass.instance_methods
>>   methods -= ["__getobj__","to_s","nil?","to_a","hash","dup","==","=~"]
>
>これは、これらのメソッドを再定義しないようにしてるんだと思うのです
>が、to_s だけは再定義してやらないと、

てゆーか、この -= の右辺は勝手にしちゃいけないような(ですよね?)
もともと(?) delegate.rb に

preserved -= ["__getobj__","to_s","nil?","to_a","hash","dup","==","=~"]

という行があって、これは、preserved (デレゲートしないもの)から
右辺を抜いてるんだけど(つまり右辺の要素はデレゲートされるかも)、
DelegateClass にある

methods -= ["__getobj__","to_s","nil?","to_a","hash","dup","==","=~"]

はデレゲートするものから抜いてるわけだから、意味が逆です。

で、結局ぼくはこの "methods -= ..." っていう行そのものが
勘違いだと思うのですが、全部を @obj に任していいものか
どうかは分りません。

-- gotoken