けいじゅ@いしつかです.

ずいぶんたってしまいましたが...

In [ruby-dev :36228 ] the message: "[ruby-dev:36228] forwardable in
trunk ", on Sep/09 17:59(JST) Keiju ISHITSUKA writes:

>trunkの版では, SingleForwardable をなくして, Forwardable で代用してい
>ますが, これでは元の振る舞いと同じにはできません.

>というわけで, trunkに入っている forwardable は前提(Forwardableと
>SingleForwardableをいっしょにできるということ)から間違っているので, 拡
>張されている部分を除いて元のものに戻したいのですが?

元に戻すのは簡単なのですが... 

trunkに入っているものになった理由は, オリジナルがForwardableと
SingleForwardableでほとんど同じコードになっているのが気にくわなかった
のかなと推測できます. それも分からなくもないので, Forwardableと
SingleForwardableで適度に共有できるうまい方法はないかなと考えているの
ですが, なかなか難しいです...

要求としては, 当たり前ですがForwardable, SingleForwardable がちゃんと
動作することで, 今のtrunkにあるように クラスに対して
def_single_delegator出来ないのはNGです. さらに, 

class Foo
  extend Forwardable
  extend SingleForwardable

  def_instance_delegator ...
  def_single_delegator ...

の用になっていても両者が定義できることです. 

何かエレガントな解決案ないでしょうか?

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju / ishitsuka.com <<---