Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

instance_evalはインスタンスにメソッドをくっ付ける

Objectクラス……つまり、Rubyにおける基本クラスのメソッドにinstance_evalがあります。
前回は文字列生成に使いましたが、この子は本来インスタンスにメソッドをくっ付けるメソッドです。

用法

> str = "test"

> str.instance_eval {def aaa ; self[2].upcase ; end }
#=> nil

> str.aaa
#=> "S"

なんでしょう、こう……lambdaとかと同系統のキモさがありますね(白目

動作環境

  • ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.5.0]