クラスに対しメソッドの委譲機能を定義します.
クラスに対して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の別名です.
オブジェクトに対し, メソッドの委譲機能を定義します.
オブジェクトに対して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の別名です.