以前、こんな記事を書きました。shuzo-kino.hateblo.jp
すると、 けんぼー (id:kemboorg)さんから、
instance_evalはオブジェクトの破壊的変更に当たるからではないでしょうか。
試してみたところinstance_evalが出来ないオブジェクトはfrozen?したところtrueが帰ってきて、
逆に出来るはずのオブジェクトもfreezeすることでinstance_eval出来なくなりました。
というコメントが。
頂いた情報をもとに、手元のpryで確認すると……
20.frozen? #>>true
凍結されてますね(白目
というわけで、件の話は
- 数値オブジェクトは凍結されている
- 凍結されたオブジェクトは破壊的変更の類を受け付けない
- instance_evalは破壊的メソッド
と、フツーに筋の通った簡単なお話しでした。