summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Peters <mtpeters@us.ibm.com>2016-08-09 14:01:56 -0400
committerMichael Peters <mtpeters@us.ibm.com>2016-08-09 14:01:56 -0400
commit43833ec33cf686e9bfa9bae3a98b6bdda815149d (patch)
tree2dfc8a8f6101767f3b3514322dfbf8cc9738165d
parent4b249e66f4d0de32762fd41a6466d28848f60946 (diff)
downloadbundler-43833ec33cf686e9bfa9bae3a98b6bdda815149d.tar.gz
doesn't change the way existing source URLs are validated
-rw-r--r--lib/bundler/mirror.rb5
-rw-r--r--lib/bundler/settings.rb6
-rw-r--r--spec/bundler/mirror_spec.rb7
-rw-r--r--spec/bundler/settings_spec.rb7
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