From: Yusuke ENDOH Date: 2007-12-07T12:49:34+09:00 Subject: [ruby-dev:32477] Re: about to_path and to_open 遠藤です。 07/12/07 に Nobuyoshi Nakada さんは書きました: > 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("foo bar baz") 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