ごとけんです
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