Ruby の define_method メソッドで動的にメソッドを定義できる!?
Ruby の define_method で動的にメソッドを定義できるのです。
define_method を使ったことがない人からすれば、
は?
だと思うので、例をば
class Game { suzukaze: '青葉', takimoto: 'ひふみ', yagami: 'コウ' }.each do |key, value| define_method(key) { value } end end p Game.new.suzukaze # => "青葉" p Game.new.takimoto # => "ひふみ" p Game.new.yagami # => "コウ"
このようにGameクラスに動的に3つの
インスタンスメソッドを定義することができました。
こちらもどうぞ
o-tyazuke.hatenablog.com