Subject: [ruby-list:42404] Re:
open-uriに対してfile:0
92;与えるとEINVALな&
#x3069;になる - msg#00058
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]
Thread at a glance:
Previous Message by Date:
[ruby-list:42403] Re: eachはなぜ元々のオブジェクトが返るのか?
おはようございます、ふじおかです。
> each は、Array だけでなく、他にも色々使われますよね。
> たとえば、Hash クラスのインスタンスで each が使われた時、
> 何が返る(べき)か、と考えてみると、参考になるかも知れません。
> Hash の each で、仮に Array の map と同じような戻り値にするなら、
> 各ループで「生成された」Hash の集合体の Hash を返すことになりそう
> ですが……、それがどういうものかは、全然、自明ではないですよね。
>
確かに自明ではないです。でも、全部同じくブロックの値を
配列で返してもいいのではないかと思いました。
> # 僕は、each の戻り値を気にしたことはありませんでした。
> # それで想定された使い方だったと分かったのは収穫でした (^^)
>
自明ではないのですが、利用している人もいないだろうから、
mapの役割を担ってもいいのではないかと思った次第でした。
んで、結論はenumrateを使えということなので、
そうすることにします。とりあえず便利に使えればいいので。^^;
Next Message by Date:
[ruby-list:42405] RubyはSUNを殺すのか
http://www.itmedia.co.jp/enterprise/articles/0604/27/news064.html
ITmedia エンタープライズ:Sunの新リーダーが取り組むべき課題とは:2006年04月27日
というページに次のような記事が載ってます。
「引用開始」
Sunの新リーダーが取り組むべき課題とは
スコット・マクニーリー氏にCEO職を譲られた
ジョナサン・シュワルツ氏。新CEOとして彼が
取り組むべきことは何か。8つの提言をまとめた。
6)Javaをオープンソース化し、GPLを採用すること:
JavaはC++並みに肥大化しつつある。プログラマーが
必要としない機能をそぎ落とす選択肢を彼らに与える
べきである。道理が通らなくても、現実はやって来る。
その現実とは、
Ruby/Ruby on Rails(RoR)
だ。RoRはプログラマーの間で急速に人気が高まっている。
大手ベンダーがRoRを後押しするようなことになれば
(IBMかBEA か?)、Sunは非常に苦しい立場に追い込まれるだろう。
「引用終了」
この記事はどれくらい正確で、
どれくらいウソなのか、
誰か教えてください。
それとここに出てくるBEAって
どんな会社なのか教えて。
Omoti <omoti-tHQgrpNAKqo@xxxxxxxxxxxxxxxx>
Previous Message by Thread:
[ruby-list:42400] open-uriに対してfile:を与えるとEINVALなどになる
artonです。
ruby -v
ruby 1.8.4 (2005-12-24) [i386-mswin32]
で、
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
となります。
Firefoxで試すと、パスセパレータに/ではなく\を与えても表示できるため、
Windowsなので\を与える必要があるのかと、以下のように実行すると
ruby ou.rb file:///c:\windows\desktop.ini
c:/progra~1/ruby-1.8/lib/ruby/1.8/uri/common.rb:432:in `split': bad URI(is not
URI?): file:///c:\windows\desktop.ini (URI::InvalidURIError)
from c:/progra~1/ruby-1.8/lib/ruby/1.8/uri/common.rb:481:in `parse'
from c:/progra~1/ruby-1.8/lib/ruby/1.8/open-uri.rb:85:in `open'
from ou.rb:2
今度は、URIでエラーになります。
ブラウザー(Firefox 1.5.0.4およびIE6SP2で動作を確認。ただしIEの場合はini
のヘルパアプリケーションのメモ帳が起動)と同様にfile:についても動作して
欲しいです。
--
arton <artonx-/E1597aS9LR3+QwDJ9on6Q@xxxxxxxxxxxxxxxx>
--------------------------------------
Let's start Yahoo! Auction - Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/
Next Message by Thread:
[ruby-list:42405] RubyはSUNを殺すのか
http://www.itmedia.co.jp/enterprise/articles/0604/27/news064.html
ITmedia エンタープライズ:Sunの新リーダーが取り組むべき課題とは:2006年04月27日
というページに次のような記事が載ってます。
「引用開始」
Sunの新リーダーが取り組むべき課題とは
スコット・マクニーリー氏にCEO職を譲られた
ジョナサン・シュワルツ氏。新CEOとして彼が
取り組むべきことは何か。8つの提言をまとめた。
6)Javaをオープンソース化し、GPLを採用すること:
JavaはC++並みに肥大化しつつある。プログラマーが
必要としない機能をそぎ落とす選択肢を彼らに与える
べきである。道理が通らなくても、現実はやって来る。
その現実とは、
Ruby/Ruby on Rails(RoR)
だ。RoRはプログラマーの間で急速に人気が高まっている。
大手ベンダーがRoRを後押しするようなことになれば
(IBMかBEA か?)、Sunは非常に苦しい立場に追い込まれるだろう。
「引用終了」
この記事はどれくらい正確で、
どれくらいウソなのか、
誰か教えてください。
それとここに出てくるBEAって
どんな会社なのか教えて。
Omoti <omoti-tHQgrpNAKqo@xxxxxxxxxxxxxxxx>