diff options
author | Michael Peters <mtpeters@us.ibm.com> | 2016-08-09 14:01:56 -0400 |
---|---|---|
committer | Michael Peters <mtpeters@us.ibm.com> | 2016-08-09 14:01:56 -0400 |
commit | 43833ec33cf686e9bfa9bae3a98b6bdda815149d (patch) | |
tree | 2dfc8a8f6101767f3b3514322dfbf8cc9738165d | |
parent | 4b249e66f4d0de32762fd41a6466d28848f60946 (diff) | |
download | bundler-43833ec33cf686e9bfa9bae3a98b6bdda815149d.tar.gz |
doesn't change the way existing source URLs are validated
-rw-r--r-- | lib/bundler/mirror.rb | 5 | ||||
-rw-r--r-- | lib/bundler/settings.rb | 6 | ||||
-rw-r--r-- | spec/bundler/mirror_spec.rb | 7 | ||||
-rw-r--r-- | spec/bundler/settings_spec.rb | 7 |
4 files changed, 13 insertions, 12 deletions
diff --git a/lib/bundler/mirror.rb b/lib/bundler/mirror.rb index 7d872966ee..0072fd8a7f 100644 --- a/lib/bundler/mirror.rb +++ b/lib/bundler/mirror.rb @@ -43,8 +43,7 @@ module Bundler private def fetch_valid_mirror_for(uri) - host = Settings.normalize_uri(URI(uri.to_s).host) - mirror = (@mirrors[URI(uri.to_s.downcase)] || @mirrors[host] || Mirror.new(uri)).validate!(@prober) + mirror = (@mirrors[URI(uri.to_s.downcase)] || @mirrors[URI(uri.to_s).host] || Mirror.new(uri)).validate!(@prober) mirror = Mirror.new(uri) unless mirror.valid? mirror end @@ -122,7 +121,7 @@ module Bundler if uri == "all" @all = true else - @uri = Settings.normalize_uri(uri) + @uri = /https?:/ =~ uri ? Settings.normalize_uri(uri) : uri end @value = value end diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index f69b035d65..914e12d993 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -289,7 +289,11 @@ module Bundler def self.normalize_uri(uri) uri = uri.to_s uri = "#{uri}/" unless uri =~ %r{/\Z} - URI(uri) + uri = URI(uri) + unless uri.absolute? + raise ArgumentError, format("Gem sources must be absolute. You provided '%s'.", uri) + end + uri end end end diff --git a/spec/bundler/mirror_spec.rb b/spec/bundler/mirror_spec.rb index 28bf81c7a0..eb0ccf0bdf 100644 --- a/spec/bundler/mirror_spec.rb +++ b/spec/bundler/mirror_spec.rb @@ -154,11 +154,16 @@ describe Bundler::Settings::Mirrors do expect(mirrors.for("http://rubygems.org/").uri).to eq(localhost_uri) end - it "parses a relative mirror key and returns a mirror for the parsed uri" do + it "parses a relative mirror key and returns a mirror for the parsed http uri" do mirrors.parse("mirror.rubygems.org", localhost_uri) expect(mirrors.for("http://rubygems.org/").uri).to eq(localhost_uri) end + it "parses a relative mirror key and returns a mirror for the parsed https uri" do + mirrors.parse("mirror.rubygems.org", localhost_uri) + expect(mirrors.for("https://rubygems.org/").uri).to eq(localhost_uri) + end + context "with a uri parsed already" do before { mirrors.parse("mirror.http://rubygems.org/", localhost_uri) } diff --git a/spec/bundler/settings_spec.rb b/spec/bundler/settings_spec.rb index a66710fae7..0f7d2a0138 100644 --- a/spec/bundler/settings_spec.rb +++ b/spec/bundler/settings_spec.rb @@ -207,13 +207,6 @@ that would suck --ehhh=oh geez it looks like i might have broken bundler somehow URI("http://rubygems-mirror.org/") ) end - - it "accepts keys using host names" do - settings["mirror.rubygems.org"] = "http://rubygems-mirror.org" - expect(settings.mirror_for("rubygems.org")).to eq( - URI("http://rubygems-mirror.org/") - ) - end end describe "BUNDLE_ keys format" do |