From: Hidetoshi NAGAI Date: 2010-01-31T09:48:36+09:00 Subject: [ruby-dev:40268] Array#flatten の仕様変更? 永井@知能.九工大です. 1.9 の Array#flatten において,配列内のオブジェクトの to_ary メソッド呼び出しに対する挙動が原因でエラーとなる条件が NameError から NoMethodError に変更になったようですが, これは仕様変更でしょうか? これが原因で Ruby/Tk が動かなくなっているのですが, 問題の箇所を NameError から NoMethodError に変更すると 仕様変更になるのでどうしようかと迷っています. 変更しても十中八九は(九分九厘は?)問題ないとは思うのですが, 念のため公式の仕様変更かどうかを確認させてください. # Ruby/Tk では,widget オブジェクトの属性設定 (cget 等) において, # 知らない属性名に対しては NameError で返しています. # それに合わせて,method_missing で対応する属性名メソッドも # 知らないもの (今回の場合は to_ary) に対して # NameError を返すようにしていました. # 「なぜ NameError か?」については, # どういう経緯だったか記憶にありません. 個人的には to_ary でエラーなら単にそのままの object とするだけでも いいような気もするのですが,それはさすがに無茶ですかね.(^_^) -- 永井 秀利 (nagai@ai.kyutech.ac.jp) 九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門