「class_evalメソッド」

class_evalメソッドという厳ついメソッドを使わざるを得ない場面があった。 初見かつ苦手なモジュール関連のメソッドだったので復習としてまとめておこうと思う。

class_evalメソッドはそもそもRubyの標準クラス・モジュールのメソッドである。

正式には

class_evalメソッドは、ブロックをクラス定義やモジュール定義の中のコードであるように実行します。ブロックの戻り値がメソッドの戻り値になります。 Rubyリファレンス

具体例

class Greet
end

Color.class_eval { def hello; "hello" ;end }

🐤