クラスに対しメソッドの委譲機能を定義するモジュールです。
クラスに対して extend して使います。include でないところに注意して下さい。
class Foo extend Forwardable def_delegators("@out", "printf", "print") def_delegators(:@in, :gets) def_delegator(:@contents, :[], "content_at") end f = Foo.new f.printf ... f.gets f.content_at(1)
def_instance_delegators(accessor, *methods)
methods で渡されたメソッドのリストを accessor に委譲する ようにします。
def_instance_delegator(accessor, method, ali = method)
method で渡されたメソッドを accessor に委譲するようにし ます。aliが引数として渡されたときは、メソッドaliが呼ば れたときには、accessor に対し method を呼び出します。
def_delegators(accessor, *methods)
def_instance_delegators の 別名です。
def_delegator(accessor, method, ali = method)
def_instance_delegator の別名です。