logo       

[ruby-list:42404] Re: open-uriに対してfile:を与えるとEINVALなどになる: msg#00058

lang.ruby.japanese

Subject: [ruby-list:42404] Re: open-uriに対してfile:を与えるとEINVALなどになる

In article <20060613003549.9567.ARTONX-/E1597aS9LR3+QwDJ9on6Q@xxxxxxxxxxxxxxxx>,
arton <artonx-/E1597aS9LR3+QwDJ9on6Q@xxxxxxxxxxxxxxxx> writes:

> require 'open-uri'
> open(ARGV[0]) {|f|
> f.each_line {|line| p line}
> }
>
> というスクリプト(以下ではou.rb)に対してfile:を与えると
>
> ruby ou.rb file:///c:/windows/desktop.ini
> c:/progra~1/ruby-1.8/lib/ruby/1.8/open-uri.rb:88:in `initialize': Invalid
> argument - file:///c:/windows/desktop.ini (Errno::EINVAL)
> from c:/progra~1/ruby-1.8/lib/ruby/1.8/open-uri.rb:88:in `open'
> from ou.rb:2
>
> となります。

open-uri の open(uri) は
は URI(uri).open として実装されているのですが、uri ライブラ
リに URI::FILE がなく、

% ruby -v -ruri -e 'p URI("file:///usr")'
ruby 1.9.0 (2006-06-08) [i686-linux]
#<URI::Generic:0xfdbeaa1fe URL:file:/usr>

というように URI::Generic になってしまうため、file: URI 用に
open メソッドを付け加えることが困難であることが理由で扱って
いません。

uri ライブラリ側で file: URI が独自のクラスになっていれば扱
うのは問題ないのですが。
--
[田中 哲][たなか あきら][Tanaka Akira]




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise