diff options
author | Agis Anastasopoulos <agis.anast@gmail.com> | 2015-10-16 16:24:30 +0300 |
---|---|---|
committer | Agis Anastasopoulos <agis.anast@gmail.com> | 2015-10-20 18:03:51 +0300 |
commit | 72926f024db0b4f6e1ccfb2ac511928858e9f3f2 (patch) | |
tree | b403f3d47e02d0dd67bb5dc31510c5905f0a6fd7 | |
parent | 282930e09cc4bac1b0f53244d8ec4e9c8caaa197 (diff) | |
download | bundler-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.rb | 5 | ||||
-rw-r--r-- | spec/bundler/source/rubygems/remote_spec.rb | 16 |
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 |