aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-31 02:08:54 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-10-31 02:08:54 +0000
commita226d7d4ebdefa10d10acc66f9299b45034972ec (patch)
tree56cf912bfb3593cfcd0b4fe18537dc3720056bf9
parent10e7eb8ef72f8d519ca964488a395524cdc0ead4 (diff)
downloadruby-a226d7d4ebdefa10d10acc66f9299b45034972ec.tar.gz
uri/generic.rb: Tidy up merge
* lib/uri/generic.rb (URI::Generic#merge): merge merge0. [GH-1469] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/uri/generic.rb41
2 files changed, 15 insertions, 31 deletions
diff --git a/ChangeLog b/ChangeLog
index 391a3972f6..e436d130a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 31 11:08:51 2016 Samuel Williams <samuel.williams@oriontransfer.co.nz>
+
+ * lib/uri/generic.rb (URI::Generic#merge): merge merge0.
+ [GH-1469]
+
Sun Oct 30 15:32:43 2016 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
diff --git a/lib/uri/generic.rb b/lib/uri/generic.rb
index 2b95b47fa7..5df9a163fe 100644
--- a/lib/uri/generic.rb
+++ b/lib/uri/generic.rb
@@ -1096,16 +1096,20 @@ module URI
# # => #<URI::HTTP:0x2021f3b0 URL:http://my.example.com/main.rbx?page=1>
#
def merge(oth)
- begin
- base, rel = merge0(oth)
- rescue
- raise $!.class, $!.message
+ rel = parser.send(:convert_to_uri, oth)
+
+ if rel.absolute?
+ #raise BadURIError, "both URI are absolute" if absolute?
+ # hmm... should return oth for usability?
+ return rel
end
- if base == rel
- return base
+ unless self.absolute?
+ raise BadURIError, "both URI are relative"
end
+ base = self.dup
+
authority = rel.userinfo || rel.host || rel.port
# RFC2396, Section 5.2, 2)
@@ -1136,31 +1140,6 @@ module URI
end # merge
alias + merge
- # return base and rel.
- # you can modify `base', but can not `rel'.
- def merge0(oth)
- oth = parser.send(:convert_to_uri, oth)
-
- if self.relative? && oth.relative?
- raise BadURIError,
- "both URI are relative"
- end
-
- if self.absolute? && oth.absolute?
- #raise BadURIError,
- # "both URI are absolute"
- # hmm... should return oth for usability?
- return oth, oth
- end
-
- if self.absolute?
- return self.dup, oth
- else
- return oth, oth
- end
- end
- private :merge0
-
# :stopdoc:
def route_from_path(src, dst)
case dst