summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgis Anastasopoulos <agis.anast@gmail.com>2015-10-16 16:24:30 +0300
committerAgis Anastasopoulos <agis.anast@gmail.com>2015-10-20 18:03:51 +0300
commit72926f024db0b4f6e1ccfb2ac511928858e9f3f2 (patch)
treeb403f3d47e02d0dd67bb5dc31510c5905f0a6fd7
parent282930e09cc4bac1b0f53244d8ec4e9c8caaa197 (diff)
downloadbundler-72926f024db0b4f6e1ccfb2ac511928858e9f3f2.tar.gz
Save original URIs in Rubygems remotes
Using `Source::Rubygems::Remote#original_uri` we can now retrieve the original, unmirrored rubygem source URI.
-rw-r--r--lib/bundler/source/rubygems/remote.rb5
-rw-r--r--spec/bundler/source/rubygems/remote_spec.rb16
2 files changed, 19 insertions, 2 deletions
diff --git a/lib/bundler/source/rubygems/remote.rb b/lib/bundler/source/rubygems/remote.rb
index 1e1a932d30..561bde194e 100644
--- a/lib/bundler/source/rubygems/remote.rb
+++ b/lib/bundler/source/rubygems/remote.rb
@@ -2,11 +2,12 @@ module Bundler
class Source
class Rubygems
class Remote
- attr_reader :uri,
- :anonymized_uri
+ attr_reader :uri, :anonymized_uri, :original_uri
def initialize(uri)
+ orig_uri = uri
uri = Bundler.settings.mirror_for(uri)
+ @original_uri = orig_uri if orig_uri != uri
fallback_auth = Bundler.settings.credentials_for(uri)
@uri = apply_auth(uri, fallback_auth).freeze
diff --git a/spec/bundler/source/rubygems/remote_spec.rb b/spec/bundler/source/rubygems/remote_spec.rb
index cec243bfb1..2842077498 100644
--- a/spec/bundler/source/rubygems/remote_spec.rb
+++ b/spec/bundler/source/rubygems/remote_spec.rb
@@ -82,6 +82,10 @@ describe Bundler::Source::Rubygems::Remote do
specify "#anonymized_uri returns the mirror URI without credentials" do
expect(remote(uri).anonymized_uri).to eq(mirror_uri_no_auth)
end
+
+ specify "#original_uri returns the original source" do
+ expect(remote(uri).original_uri).to eq(uri)
+ end
end
context "when a mirror with configured credentials is configured for the URI" do
@@ -101,5 +105,17 @@ describe Bundler::Source::Rubygems::Remote do
specify "#anonymized_uri returns the mirror URI without credentials" do
expect(remote(uri).anonymized_uri).to eq(mirror_uri_no_auth)
end
+
+ specify "#original_uri returns the original source" do
+ expect(remote(uri).original_uri).to eq(uri)
+ end
+ end
+
+ context "when there is no mirror set" do
+ describe "#original_uri" do
+ it "is not set" do
+ expect(remote(uri_no_auth).original_uri).to be_nil
+ end
+ end
end
end