ruby-trunk-changes r34376 - r34378

今日は stringio と io/console を併用した時の StringIO のメソッド追加のために StringIO の実装の変更がありました。

nobu:r34376 2012-01-26 03:24:09 +0900

拡張ライブラリ io/console をロードすると IO#getch というメソッドが追加されるのですが、StringIO には getch が追加されないので、io/console と StringIO を併用した時には StringIO#getch も定義されるようにしています。
と言うのは簡単なのですが、そのために StringIO は IO::readable と IO::writable という Module *1を定義して、そこで StringIO のいくつかのメソッド(別のメソッドに処理を委譲するメソッド)の定義を移動し、それを StringIO が include するようにしています。 io/console がロード時に IO::readable に getch の定義を追加することで io/console と stringio の両方をロードすると StringIO#getch が定義されるようにしています。動作には大きな違いはありませんが中身はけっこう大きな変化ですね。

svn:r34377 2012-01-26 03:24:18 +0900

version.h の日付更新。

drbrain:r34378 2012-01-26 12:04:11 +0900

lib/matrix.rb の rdoc 用コメントの不要なタグ付けを削除しています。

*1:名前が大文字からはじまっていないので Ruby からこの名前ではアクセスできない隠された Module になっています。 StringIO.ancestors とか ObjectSpace.each_object を使わないと参照することができません