A Module to define delegations for selected methods to a class.
Using through extending the class.
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)
adding the delegations for each method of methods to accessor.
Forwardable#def_instance_delegator(accessor, method, ali = method)
adding the delegation for method to accessor. When you give optional argument ali, ali is used as the name of the delegation method, instead of method.
Forwardable#def_delegators(accessor, *methods)
the alias of Forwardable#def_instance_delegators.
Forwardable#def_delegator(accessor, method, ali = method)
the alias of Forwardable#def_instance_delegator.
a Module to define delegations for selected methods to an object.
Using through extending the object.
g = Goo.new g.extend SingleForwardable g.def_delegator("@out", :puts) g.puts ...
SingleForwardable#def_singleton_delegators(accessor, *methods)
adding the delegations for each method of methods to accessor.
SingleForwardable#def_singleton_delegator(accessor, method, ali = method)
adding the delegation for method to accessor. When you give optional argument ali, ali is used as the name of the delegation method, instead of method.
SingleForwardable#def_delegators(accessor, *methods)
the alias of SingleForwardable#def_instance_delegators.
SingleForwardable#def_delegator(accessor, method, ali = method)
the alias of SingleForwardable#def_instance_delegator.