_ instance_eval/class_evalの仕様変更 Ruby 1.9で変更されていた、instance_eval/class_evalのブロック内での定数・クラス変数の探索時の挙動を1.8の挙動に戻した(r25984)。 たとえば、class_evalの場合、レシーバが探索対象に含まれなくなったので注意してください。 1.9の新しい挙動の方が一貫性があってわかりやすいと思っていたが、メタプログラミングではレシーバに何が来るかわからないことが多く、定数名の衝突が問題になるため、Yehuda Katzの強い要望で結局元に戻すことになった。これで、Railsの1.9対応が加速するかも? また、ブロックパラメータについても、1.8同様にレシーバが渡されるようになった(r26062)。 ちなみに、Yehuda Katzがしきりに定数のスコープをlexicalと言っているが、厳密にはlex