永井@知能.九工大です.

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)
九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門