names=def_delegator,def_instance_delegator
visibility=public
kind=defined

--- def_instance_delegator(accessor, method, ali = method) -> ()
--- def_delegator(accessor, method, ali = method)          -> ()

メソッドの委譲先を設定します。

@param accessor 委譲先のオブジェクト

@param method 委譲先のメソッド

@param ali 委譲元のメソッド

委譲元のオブジェクトで ali が呼び出された場合に、
委譲先のオブジェクトの method へ処理が委譲されるようになります。

委譲元と委譲先のメソッド名が同じ場合は, ali を省略することが可能です。

def_delegator は def_instance_delegator の別名になります。

例:

  class MyQueue
    extend Forwardable
    attr_reader :queue
    def initialize
      @queue = []
    end

    def_delegator :@queue, :push, :mypush
  end

  q = MyQueue.new
  q.mypush 42
  q.queue    # => [42]
  q.push 23  # => NoMethodError

@see [[m:Forwardable#def_delegators]]

