Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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]