遠藤です。

07/12/07 に Nobuyoshi Nakada<nobu / ruby-lang.org> さんは書きました:
> to_openは最近入ったものなので、pathname.rbが未対応ですね。

あれ、でも to_open で検索すると [ruby-dev:23479] がひっかかります。
そのくらいのころからはあるんじゃないでしょうか。名前が同じ別物?

Pathname も含めて多くの場合は to_path で十分そうなので、to_open の
嬉しさがやっぱりよくわからないのですが、uri とか open-uri あたりで
使われる予定とかでしょうか。

virtual_filename = "http://example.com/"
def virtual_filename.to_open
  StringIO.new("<body>foo bar baz</body>")
end
open(virtual_filename) {|fh| puts fh.read }


> > もっと些細なことですが、to_path を定義した String を require すると
> > String 自身が優先されるようです。これは仕様でしょうか。わざわざ
> > to_path を定義しているのだから、そちらを見てあげる方が気が利いている
> > ような気がします (本当に些細でごめんなさい) 。
>
> to_pathはIO専用のto_strの特別版ということだと思います。もともと
> Stringならto_strは呼ばれませんから。

なるほど、そういうスタンスなら呼ばないのが適切ですね。
納得しました。ありがとうございます。


> > require 0 のエラーメッセージのパッチだけ送ります。
>
> これだとto_pathがnilを返したときに無視されることになりませんか。

その通りです。ごめんなさい。

-- 
Yusuke ENDOH <mame / tsg.ne.jp>