def_instance_delegator(accessor, method, ali = method) -> ()[permalink][rdoc][edit]def_delegator(accessor, method, ali = method) -> ()-
メソッドの委譲先を設定します。
- [PARAM]
accessor: - 委譲先のオブジェクト
- [PARAM]
method: - 委譲先のメソッド
- [PARAM]
ali: - 委譲元のメソッド
委譲元のオブジェクトで ali が呼び出された場合に、委譲先のオブジェクトの method へ処理が委譲されるようになります。
委譲元と委譲先のメソッド名が同じ場合は, ali を省略することが可能です。
def_delegator は def_instance_delegator の別名になります。
例require 'forwardable' class MyQueue extend Forwardable attr_reader :queue def initialize @queue = [] end def_delegator :@queue, :push, :mypush end q = MyQueue.new q.mypush 42 p q.queue # => [42] q.push 23 # ~> NoMethodError[SEE_ALSO] Forwardable#def_delegators
- [PARAM]