ruby-trunk-changes r30584 - r30594

Psych.to_json の生成する JSON の不具合、Encoding.default_encoding が UTF-8 以外に指定されていると utf-8 文字を含む gemspec ファイルのロードが失敗する不具合などの修正があります。また irb の補完機能の "::" の認識がより賢くなっています。これはうれしいですね。

akr:r30584 2011-01-18 01:02:13 +0900

time.c の Time#strftime の rdoc 更新しています。

svn:r30585 2011-01-18 01:02:15 +0900

version.h の日付更新。

akr:r30586 2011-01-18 02:00:36 +0900

もうひとつ Time#strftime の RDoc に説明を追加。Unix で picosecond までの精度って持てるんだったかな。

tenderlove:r30587 2011-01-18 02:48:09 +0900

Psych.to_json で文字列のクオートがシングルクオートになっていたのをダブルクオートを用いるように修正 [ruby-core:34186] [Bug #4244]

tenderlove:r30588 2011-01-18 04:44:31 +0900

Psych::Parser#mark で index, line, column というアトリビュートをもつ Mark オブジェクトを返すようにしています。

nobu:r30589 2011-01-18 06:49:40 +0900

rubygems/source_index.rb で gem パッケージの gemspec ファイルを読み込む時に File.binread を用いるようにしています。これは gemspec ファイルに UTF-8 の文字が含まれている時などに、エンコードを指定するマジックコメントが含まれるのですが、Encoding.default_encoding が指定されているとエンコード変換が自動で行なわれてしまって内容を eval した時にエンコード不一致が起きてしまうためです。
そうか、File.binread で読んでしまえば変換はされないんですね。文字列のエンコードも揃えないといけないんじゃないかと File.read(path, :encoding => "UTF-8:UTF-8") みたいな指定をして警告が出るのでどうすればいいのだろうかと思ってました。
ただしこれにより make test-all で test_self_load_specification_utf_8(TestGemSourceIndex) が Failure になっています。

akr:r30590 2011-01-18 07:54:29 +0900

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

nahi:r30591 2011-01-18 15:11:41 +0900

Logger はメッセージを特に処理せず、アプリケーション側で必要に応じて適切にエスケープ処理を施していることを期待しているので、その旨を RDoc に追記しています。 #3869

keiju:r30592 2011-01-18 18:34:10 +0900

irb/completion.rb で irb のタブ補完を有効にした時に、以下のようにl "::" 区切りでメソッド呼び出しする記法の時にメソッド名を補完するようにしています。また中身が Module/Class の時には定数を補完するようにしています。

a = Object
a::object<Tab> #=> object_id
a::Time<Tab> #=> Time Timeout TimeoutError

akr:r30593 2011-01-18 23:05:20 +0900

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

akr:r30594 2011-01-18 23:05:39 +0900

Time#strftime の RDoc の %C, %y の解説を修正しています