diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-15 21:28:10 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-07-15 21:28:10 +0000 |
commit | c2dfaa7d40531aef3706bcc16f38178b0c6633ee (patch) | |
tree | d37533972d9408b7b81101440407d5faf3c82c59 | |
parent | e05e9928430f94ef14dbf4c4adee7e24e18ec79f (diff) | |
download | ruby-c2dfaa7d40531aef3706bcc16f38178b0c6633ee.tar.gz |
* lib/uri/common.rb (module): Remove optional parser argument to Kernel#URI
[ruby-core:38061]
* lib/uri/generic.rb (module): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib/uri/common.rb | 18 | ||||
-rw-r--r-- | lib/uri/generic.rb | 6 |
3 files changed, 26 insertions, 6 deletions
@@ -1,3 +1,11 @@ +Sat Jul 16 06:27:51 2011 Marc-Andre Lafortune <ruby-core@marc-andre.ca> + + * lib/uri/common.rb (module): Remove optional parser argument to + Kernel#URI + [ruby-core:38061] + + * lib/uri/generic.rb (module): ditto + Sat Jul 16 03:19:45 2011 NAKAMURA Usaku <usa@ruby-lang.org> * win32/win32.c (is_socket, is_console): add prototypes to fix compile diff --git a/lib/uri/common.rb b/lib/uri/common.rb index aaafeba478..92beafa8d8 100644 --- a/lib/uri/common.rb +++ b/lib/uri/common.rb @@ -233,7 +233,7 @@ module URI # Attempts to parse and merge a set of URIs # def join(*uris) - uris[0] = URI(uris[0], self) + uris[0] = convert_to_uri(uris[0]) uris.inject :merge end @@ -527,6 +527,18 @@ module URI ret end + + def convert_to_uri(uri) + if uri.is_a?(URI::Generic) + uri + elsif uri = String.try_convert(uri) + parse(uri) + else + raise ArgumentError, + "bad argument (expected URI object or URI string)" + end + end + end # class Parser # URI::Parser.new @@ -988,11 +1000,11 @@ module Kernel # # Returns +uri+ converted to a URI object. # - def URI(uri, parser = URI::DEFAULT_PARSER) + def URI(uri) if uri.is_a?(URI::Generic) uri elsif uri = String.try_convert(uri) - parser.parse(uri) + URI.parse(uri) else raise ArgumentError, "bad argument (expected URI object or URI string)" diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb index a37649545a..1056cfe3bc 100644 --- a/lib/uri/generic.rb +++ b/lib/uri/generic.rb @@ -1239,7 +1239,7 @@ module URI # return base and rel. # you can modify `base', but can not `rel'. def merge0(oth) - oth = URI(oth, parser) + oth = parser.send(:convert_to_uri, oth) if self.relative? && oth.relative? raise BadURIError, @@ -1302,7 +1302,7 @@ module URI # :stopdoc: def route_from0(oth) - oth = URI(oth, parser) + oth = parser.send(:convert_to_uri, oth) if self.relative? raise BadURIError, "relative URI: #{self}" @@ -1410,7 +1410,7 @@ module URI # #=> #<URI::Generic:0x2020c2f6 URL:/main.rbx?page=1> # def route_to(oth) - URI(oth, parser).route_from(self) + parser.send(:convert_to_uri, oth).route_from(self) end # |