Forwardable

クラスに対しメソッドの委譲機能を定義するモジュールです。

使い方

クラスに対して 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 の別名です。

モジュールメソッド

Forwardable.debug
Forwardable.debug=(bool)

委譲したメソッドをバックトレースに含めるかどうかを設定します。 (デフォルトは表示しません。)



rubyist ML