From: Kouhei Yanagita Date: 2009-11-15T15:12:04+09:00 Subject: [ruby-dev:39694] [Bug #2368] URI.regexp にマッチする文字列が URI.parse できないことがある チケット #2368 が更新されました。 (by Kouhei Yanagita) 確かに "http://" は不正な URI でしたので例として不適切でした。 私は「URI.regexp にマッチする文字列の集合と URI.parse できる文字列の集合は等しいのだろう」と思っていたため 提示したようなふるまいにとまどったのですが、両者は概念が異なるのでしょうか? (例えば、URI.parse は個別のスキームの制約を考慮するなど) 一般論として、hier-part が空であるような URI は、スキームによっては許容されている(RFC 3986では制限されていない)と思うのですが そのようなものには URI.parse は対応していないのでしょうか? http://www.ietf.org/rfc/rfc3986 [Appendix A] URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty path-empty = 0 % ~/local/ruby-trunk/bin/ruby -ruri -e 'URI.parse "hoge:"' /home/ani/local/ruby-trunk/lib/ruby/1.9.1/uri/common.rb:126:in `split': bad URI(absolute but no path): http:// (URI::InvalidURIError) from /home/ani/local/ruby-trunk/lib/ruby/1.9.1/uri/common.rb:174:in `parse' from /home/ani/local/ruby-trunk/lib/ruby/1.9.1/uri/common.rb:628:in `parse' from -e:1:in `
' ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2368 ---------------------------------------- http://redmine.ruby-lang.org