From 587a24609bea4d7587510f614ac47fa56e7b246a Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 31 Oct 2016 02:08:54 +0000 Subject: 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 --- lib/uri/generic.rb | 41 ++++++++++------------------------------- 1 file changed, 10 insertions(+), 31 deletions(-) (limited to 'lib/uri/generic.rb') 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 # # => # # 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 -- cgit v1.2.3