ruby-trunk-changes r30622 - r30630

今日は Psych の修正のオンパレードでした。タコヤキ仮面無双……あっ、いや、タコヤキ仮面はいったい誰なんだろうなぁ〜。

akr:r30622 2011-01-22 00:54:58 +0900

vm_core.h の関数マクロの引数にかっこをつける修正です。

svn:r30623 2011-01-22 00:54:59 +0900

version.h の日付更新。

tenderlove:r30624 2011-01-22 04:11:53 +0900

psych で Psych::Nodes::Node クラスが Enumerable を include するようにしています。また YAML のツリー構造を深さ優先で巡回する Visitor クラス Psych::Visitors::DepthFirst が追加されています。だから何って言われると困っちゃいますが。

tenderlove:r30625 2011-01-22 10:13:52 +0900

Psych::Parser#parse が SyntaxError を発生させた後で再度 parse を実行すると拡張ライブラリの assertion にひっかかってインタプリタが終了してしまう不具合を修正。

tenderlove:r30626 2011-01-22 10:26:40 +0900

Psych::Parser#parse が SyntaxError を発生させる時にメッセージにファイルパスを含めるようにしています。

tenderlove:r30627 2011-01-22 11:18:21 +0900

psych の JSON エンコーディングのテストでタイムゾーンに依存していたものを修正しています。

tenderlove:r30628 2011-01-22 11:23:12 +0900

Psych::Parser#parse が文法エラー時に生成するメッセージの行番号が1つ少なかったので調整しています。[ruby-core:34690]

tenderlove:r30629 2011-01-22 11:34:50 +0900

YAML の "merge keys" という機能をサポートしています。テストケースをみるに別の Hash のエイリアスを指定することでその Hash の内容を現在の Hash に merge するようなことができるみたいです。 YAML にはそんな特殊な記法があるんですね。[ruby-core:34679]

tenderlove:r30630 2011-01-22 11:51:14 +0900

YAML の merge key の仕様では複数の他の Hash も指定できるのでそれもサポートするように仕様を追加しています。複数指定した時には、先に指定したもののほうが後で指定したものを上書きするという優先順位になっているようです。ちょっと意外ですね。[ruby-core:34679]
参考URL: http://yaml.org/type/merge.html