うーむ、この挙動の変更には驚いた。

今までなら、

   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への要素の追加は、以下のようにgetsetを使わなくては ならないようだ。

   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を使う必要がある。

posted by Png genki on Wed 26 Dec 2007 at 17:54

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry290
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ