summaryrefslogtreecommitdiff
path: root/lib/bundler/source/rubygems/remote.rb
blob: da52128a7231ad663c1728531ba05ebfb451c524 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Bundler
  class Source
    class Rubygems
      class Remote
        attr_reader :uri,
                    :anonymized_uri

        def initialize(uri)
          uri = Bundler.settings.mirror_for(uri)
          fallback_auth = Bundler.settings.credentials_for(uri)

          @uri = apply_auth(uri, fallback_auth).freeze
          @anonymized_uri = remove_auth(@uri).freeze
        end

      private

        def apply_auth(uri, auth)
          if auth && uri.userinfo.nil?
            uri = uri.dup
            uri.userinfo = auth
          end

          uri
        end

        def remove_auth(uri)
          if uri.userinfo
            uri = uri.dup
            uri.user = uri.password = nil
          end

          uri
        end
      end
    end
  end
end