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 q.queue # => [42] q.push 23 # => NoMethodError
[SEE_ALSO] Forwardable#def_delegators