Ruby 3.2 リファレンスマニュアル > ライブラリ一覧 > forwardableライブラリ > Forwardableモジュール > def_delegator
def_instance_delegator(accessor, method, ali = method) -> ()
[permalink][rdoc]def_delegator(accessor, method, ali = method) -> ()
メソッドの委譲先を設定します。
委譲元のオブジェクトで 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