🖥

#Ruby で メソッド委譲 ( delegate ) する

2023/09/01に公開
  • require と extend が必要
  • メソッドの委譲先をインスタンスに設定するっぽい
  • Railsとは流儀が少し違いそう
# https://docs.ruby-lang.org/ja/latest/method/Forwardable/i/delegate.html

require 'forwardable'

class Foo
  extend Forwardable

  def initialize
    @bar = Bar.new
  end

  delegate wow: :@bar
  delegate yeah: :@bar
end


class Bar
  def wow
    p "wow!"
  end

  def yeah
    p "yeah!"
  end
end

Foo.new.wow # wow!

Foo.new.yeah # yeah!

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/3107

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2020-05-01

Discussion