From 91a3db0afc159e855312c4cd5c79fe925c65fd10 Mon Sep 17 00:00:00 2001 From: akira Date: Thu, 7 Feb 2002 04:51:11 +0000 Subject: [PATCH] uri-0.9.5 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 10 ++++++++++ lib/uri.rb | 2 +- lib/uri/common.rb | 13 +++++++++++++ lib/uri/generic.rb | 6 +++--- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07b3257add..058ddd8796 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Thu Feb 07 13:44:08 2002 akira yamada + + * uri/common.rb (URI::join): new method. + + * uri/generic.rb (Generic#merge): URI.parse("http://a/")+"b" should + return "http://a/b" but it returned "http://a//b". + + * uri/generic.rb (Generic#check_path): corrected error message, + @path -> v + Thu Feb 7 00:18:43 2002 Yukihiro Matsumoto * io.c (io_write): flag when buffered write is done. diff --git a/lib/uri.rb b/lib/uri.rb index aa750aa8d9..1832fb8d5d 100644 --- a/lib/uri.rb +++ b/lib/uri.rb @@ -15,7 +15,7 @@ =end module URI - VERSION_CODE = '000904'.freeze + VERSION_CODE = '000905'.freeze VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze end diff --git a/lib/uri/common.rb b/lib/uri/common.rb index ed2f6a7a5b..6f2fa81ad2 100644 --- a/lib/uri/common.rb +++ b/lib/uri/common.rb @@ -378,6 +378,19 @@ module URI =begin +--- URI::join(str[, str, ...]) + +=end + def self.join(*str) + u = self.parse(str[0]) + str[1 .. -1].each do |x| + u = u.merge(x) + end + u + end + +=begin + --- URI::extract(str[, schemes]) =end diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb index 4d3ab67b7e..1510e53eeb 100644 --- a/lib/uri/generic.rb +++ b/lib/uri/generic.rb @@ -494,7 +494,7 @@ Object else if v && v != '' && ABS_PATH !~ v && REL_PATH !~ v raise InvalidComponentError, - "bad component(expected relative path component): #{@path}" + "bad component(expected relative path component): #{v}" end end @@ -688,7 +688,7 @@ Object end # RFC2396, Section 5.2, 6), a) - base_path.pop if !base_path.last.empty? + base_path.pop unless base_path.size == 1 # RFC2396, Section 5.2, 6), c) # RFC2396, Section 5.2, 6), d) @@ -719,7 +719,7 @@ Object # valid absolute path # end base_path << x - base_path += tmp + tmp.each {|t| base_path << t} add_trailer_slash = false break end