From c2dfaa7d40531aef3706bcc16f38178b0c6633ee Mon Sep 17 00:00:00 2001 From: marcandre Date: Fri, 15 Jul 2011 21:28:10 +0000 Subject: * 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 --- ChangeLog | 8 ++++++++ lib/uri/common.rb | 18 +++++++++++++++--- lib/uri/generic.rb | 6 +++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 27582ef39d..5bb44eda9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Jul 16 06:27:51 2011 Marc-Andre Lafortune + + * 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 * 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 # #=> # # def route_to(oth) - URI(oth, parser).route_from(self) + parser.send(:convert_to_uri, oth).route_from(self) end # -- cgit v1.2.3