うーむ、この挙動の変更には驚いた。
今までなら、
1 >>> a = $H()
2 Object _object=Object
3 >>> a.test = 'foo'
4 "foo"
5 >>> a.inspect()
6 "#<Hash:{'test': 'foo'}>"
という挙動だったのだけれど、version 1.6以降、最後の結果が
1 >>> a.test = 'foo'
2 "foo"
3 >>> a.inspect()
4 "#<Hash:{}>"
と、空っぽのままになってしまう。
Hashへの要素の追加は、以下のようにget
やset
を使わなくては
ならないようだ。
1 >>> a.set('test', 'foo')
2 "foo"
3 >>> a.inspect()
4 "#<Hash:{'test': 'foo'}>"
これは結構影響が大きな変更なんじゃないかな・・・。
Rails 2.0からprototype.js 1.6が使われるようになったから、
今頃気がついたわけですね。
JavaScriptライブラリ「Prototype.js 1.6.0」正式版リリース(ライブラリ)
Elementsは「new Element(...)」というシンタックスで生成できるようになり、Element#insert、Element#select、 Element#wrapといったAPIが提供された。また、Hashに関するAPIが変更され、Hash#get、Hash#setを使う必要がある。