まつもと ゆきひろです

In message "[ruby-dev:23478] to_open"
    on 04/05/08, Tanaka Akira <akr / m17n.org> writes:

|次のように、Kernel.open に pathname とブロックを渡すと、ブロックが無視されます。
|
|% ruby -v -rpathname -e '
|p open(Pathname.new("/dev/null")) {|f| 100 }
|'
|ruby 1.9.0 (2004-05-06) [i686-linux]
|#<File:/dev/null>
|
|調べてみると、これは Pathname が to_open というメソッドを持っているた
|めのようで、次のようにしても再現します。

<中略>

|それはそれとして、to_path に加えて to_open があるのはなんでなんでしょ
|うか?

まず、to_pathがあるのにto_openが定義されているのは無意味です。
これは私がついうっかり追加してしまったものですから、削ります。

次に、to_openがあるとブロックが無視されるのもバグです。これ
はto_open はオープンしたIOを返し、ブロックの処理はIOクラスで
行うという形で対応しようと思います。