summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--lib/uri/common.rb18
-rw-r--r--lib/uri/generic.rb6
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 <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
#