プロを目指す人のためのRuby入門 その15
第8章 モジュールを理解する
prepend
prepend でモジュールをミックスインしたとき、同名メソッドの呼び出しはミックスインしたクラスよりも先にモジュールのメソッドが呼ばれます。
module A def to_s 'A' end end class B prepend A def to_s 'B' end end b = B.new p b.to_s # A
refinements
refinements を使って範囲を限定してメソッドのオーバーライドやメソッドの追加をすることができます。refinements を有効にするには using を使います。
class User using StringConcatNumber def initialize(name) @name = name end def concat_number_name @name.concat_number end def name @name end end user = User.new('Ken') p user.concat_number_name
本
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
感想
これで8章の終わりです。8章の内容は小規模なプログラムでは使う機会があまりないと思うので、必要な時に読み返そうと思います。Ruby に限らず、他の言語でも似たような機能があるので概念として覚えておくことは大事ですね。