ruby-trunk-changes r29299 - r29305

changes やっていると普段読まないところも多少は読もうと努力するので、いい勉強になると最近実感しました。configure.in とか tool の下とか。今日のコミットは以下の通りです。

yugui:r29299 2010-09-19 22:10:25 +0900

make に capi(C レベルの API のドキュメント)についてのターゲットを追加。
(clean-capi, distclean-capi, realclean-capi)

yugui:r29300 2010-09-19 22:10:27 +0900

configure に渡すオプションで --disable-install-doc というのがあって rdoc の生成を抑制してくれるので、わたしも時間がない時やドキュメント不要な環境には付けるようにしているのですが、これを --disable-install-rdoc と --disable-install-capi に分離して個別に制御できるようにしています。--disable-install-doc は両方まとめて抑制してくれるので普段は使うことはないだろうと思います。

yugui:r29301 2010-09-19 22:10:31 +0900

lib/mkmf.rb に rdoc 用のコメントを追加しています。

naruse:r29302 2010-09-20 02:28:30 +0900

test/rexml/test_order.rb でファイルを open している所で文字エンコーディングutf-8 に指定するようにしています。
差分を読んであれっと思ったのですが、開いているのは *.gz ファイルで Zlib::GzipReader に渡しているのですが、展開後の文字列が utf-8 だとして gzip で圧縮されたデータも utf-8 になるものなんでしょうか。GzipReader は渡した File オブジェクトに対して readpartial メソッドを呼び出すみたいなので、utf-8 として不正なバイト列が来ると例外が発生するんじゃなかったかな……、と思ったのですが別に例外は発生しないみたいですね。それなら単にエンコーディング情報を伝播させるためでよいのか。

svn:r29303 2010-09-20 02:28:32 +0900

version.h の日付変更。

mrkn:r29304 2010-09-20 02:38:18 +0900

昨日の r29295 で BigDecimal の丸め方法の指示にシンボルを受け付けるようにしていたところで、不正なシンボルが渡された時に例外を発生させるようにしています。また不正な丸め方法が渡された時に発生させる例外が TypeError から ArgumentError に変更されています。

akr:r29305 2010-09-20 11:26:30 +0900

Pathname で メソッド =~ を undef しているのを C の拡張ライブラリへ移動しています。
Pathname ではわざわざ =~ を削除しているんですね。うっかり右辺に置いた時に NoMethodError にしてすぐわかるようにするためでしょうか。