Forwardable

クラスに対しメソッドの委譲機能を定義します.

使い方

クラスに対してextendして使います.

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)

メソッド

Forwardable#def_instance_delegators(accessor, *methods)

methodsで渡されたメソッドのリストをaccessorに委譲する ようにします.

Forwardable#def_instance_delegator(accessor, method, ali = method)

|methodで渡されたメソッドをaccessorに委譲するようにし ます. aliが引数として渡されたときは, メソッドaliが呼ば れたときには, accessorに対しmethodを呼び出します.

Forwardable#def_delegators(accessor, *methods)

Forwardable#def_instance_delegatorsの別名です.

Forwardable#def_delegator(accessor, method, ali = method)

Forwardable#def_instance_delegatorの別名です.

SingleForwardable

オブジェクトに対し, メソッドの委譲機能を定義します.

使い方

オブジェクトに対してextendして使います.

g = Goo.new
g.extend SingleForwardable
g.def_delegator("@out", :puts)
g.puts ...

メソッド

SingleForwardable#def_singleton_delegators(accessor, *methods)

methodsで渡されたメソッドのリストをaccessorに委譲する ようにします.

SingleForwardable#def_singleton_delegator(accessor, method, ali = method)

methodで渡されたメソッドをaccessorに委譲するようにしま す. aliが引数として渡されたときは, メソッドaliが呼ばれ たときには, accessorに対しmethodを呼び出します.

SingleForwardable#def_delegators(accessor, *methods)

SingleForwardable#def_singleton_delegatorsの別名です.

SingleForwardable#def_delegator(accessor, method, ali = method)

SingleForwardable#def_singleton_delegatorの別名です.