bundler 1.7.12 → 1.7.13

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f78506794e1236e20baeec03409bf31851b62ae8
4
- data.tar.gz: 6235c60a7baa56c9d99ea70f5a86854c0cd37ffa
3
+ metadata.gz: 52077386a3541d9c2aee5208c378887d8ed4e4fe
4
+ data.tar.gz: 5688627918ab06e42226e70e7759ce4adc50f55b
5
5
  SHA512:
6
- metadata.gz: 5f23150e0c391c85c40af0e6e9c11aa372ccbdc3c7dc671b7258bbc622a721a6ce6de4700da3b817e5625ac30409c9e5265a4902a7f5240c07be3cb2f9ffee49
7
- data.tar.gz: 1c906be004088ce34030dec90bc4aeebb48387b92386659c73125d3a670c75a2f0578b88a583555e7c0aa0b707259a112bf8bf52ade4838ec4740a347aab38d2
6
+ metadata.gz: 49a73d3536173e9ec53b420df33f946863978625ecf8ce635af8ec55cf6c03428e3d4243a876b6a03531f0e11fb0884204bf415c57063b8e6fdf3c571406ba15
7
+ data.tar.gz: 3ec463bd63a4deb40f6a0b30e26c38d4e12878710ec010a6df4d47d8f25b9685483ad27931deeaaa5addc53b9a21a4eae3dc2fef9abad70c59df22ff4812679d
@@ -1,3 +1,11 @@
1
+ ## 1.7.13 (2015-02-07)
2
+
3
+ Bugfixes:
4
+
5
+ - Look up installed gems in remote sources (#3300, #3368, #3377, #3380, #3381, @indirect)
6
+ - Look up gems across all sources to satisfy dependencies (#3365, @keiths-osc)
7
+ - Request dependencies for no more than 100 gems at a time (#3367, @segiddins)
8
+
1
9
  ## 1.7.12 (2015-01-08)
2
10
 
3
11
  Bugfixes:
@@ -3,28 +3,28 @@ lib = File.expand_path('../lib/', __FILE__)
3
3
  $:.unshift lib unless $:.include?(lib)
4
4
  require 'bundler/version'
5
5
 
6
- Gem::Specification.new do |spec|
7
- spec.name = 'bundler'
8
- spec.version = Bundler::VERSION
9
- spec.licenses = ['MIT']
10
- spec.authors = ["André Arko", "Terence Lee", "Carl Lerche", "Yehuda Katz"]
11
- spec.email = ["andre@arko.net"]
12
- spec.homepage = "http://bundler.io"
13
- spec.summary = %q{The best way to manage your application's dependencies}
14
- spec.description = %q{Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably}
6
+ Gem::Specification.new do |s|
7
+ s.name = 'bundler'
8
+ s.version = Bundler::VERSION
9
+ s.licenses = ['MIT']
10
+ s.authors = ["André Arko", "Terence Lee", "Carl Lerche", "Yehuda Katz"]
11
+ s.email = ["andre@arko.net"]
12
+ s.homepage = "http://bundler.io"
13
+ s.summary = %q{The best way to manage your application's dependencies}
14
+ s.description = %q{Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably}
15
15
 
16
- spec.required_ruby_version = '>= 1.8.7'
17
- spec.required_rubygems_version = '>= 1.3.6'
16
+ s.required_ruby_version = '>= 1.8.7'
17
+ s.required_rubygems_version = '>= 1.3.6'
18
18
 
19
- spec.add_development_dependency 'mustache', '0.99.6'
20
- spec.add_development_dependency 'rdiscount', '~> 1.6'
21
- spec.add_development_dependency 'ronn', '~> 0.7.3'
22
- spec.add_development_dependency 'rspec', '~> 3.0'
19
+ s.add_development_dependency 'mustache', '0.99.6'
20
+ s.add_development_dependency 'rdiscount', '~> 1.6'
21
+ s.add_development_dependency 'ronn', '~> 0.7.3'
22
+ s.add_development_dependency 'rspec', '~> 3.0'
23
23
 
24
- spec.files = `git ls-files -z`.split("\x0")
25
- spec.files += Dir.glob('lib/bundler/man/**/*') # man/ is ignored by git
26
- spec.test_files = spec.files.grep(%r{^spec/})
24
+ s.files = `git ls-files -z`.split("\x0")
25
+ s.files += Dir.glob('lib/bundler/man/**/*') # man/ is ignored by git
26
+ s.test_files = s.files.grep(%r{^spec/})
27
27
 
28
- spec.executables = %w(bundle bundler)
29
- spec.require_paths = ["lib"]
28
+ s.executables = %w(bundle bundler)
29
+ s.require_paths = ["lib"]
30
30
  end
@@ -102,6 +102,7 @@ module Bundler
102
102
  Bundler.ui.error "You should add a source requirement to restrict this gem to your preferred source."
103
103
  Bundler.ui.error "For example:"
104
104
  Bundler.ui.error " gem '#{name}', :source => '#{installed_from_uri}'"
105
+ Bundler.ui.error "Then uninstall the gem '#{name}' (or delete all bundled gems) and then install again."
105
106
  end
106
107
 
107
108
  if Bundler.settings[:clean] && Bundler.settings[:path]
@@ -199,11 +199,15 @@ module Bundler
199
199
  @index ||= Index.build do |idx|
200
200
  dependency_names = @dependencies.map { |d| d.name }
201
201
 
202
- sources.all_sources.each do |s|
203
- s.dependency_names = dependency_names.dup
204
- idx.add_source s.specs
205
- s.specs.each { |spec| dependency_names.delete(spec.name) }
206
- dependency_names.push(*s.unmet_deps).uniq!
202
+ sources.all_sources.each do |source|
203
+ source.dependency_names = dependency_names.dup
204
+ idx.add_source source.specs
205
+
206
+ if source.is_a?(Source::Git) || source.is_a?(Source::Path)
207
+ dependency_names -= source.specs.map{|s| s.name }.uniq
208
+ end
209
+
210
+ dependency_names.push(*source.unmet_deps).uniq!
207
211
  end
208
212
  end
209
213
  end
@@ -301,10 +301,14 @@ module Bundler
301
301
  # fetch from Gemcutter Dependency Endpoint API
302
302
  def fetch_dependency_remote_specs(gem_names)
303
303
  Bundler.ui.debug "Query Gemcutter Dependency Endpoint API: #{gem_names.join(',')}"
304
- marshalled_deps = fetch dependency_api_uri(gem_names)
305
- gem_list = Bundler.load_marshal(marshalled_deps)
304
+ gem_list = []
306
305
  deps_list = []
307
306
 
307
+ gem_names.each_slice(Source::Rubygems::API_REQUEST_LIMIT) do |names|
308
+ marshalled_deps = fetch dependency_api_uri(names)
309
+ gem_list += Bundler.load_marshal(marshalled_deps)
310
+ end
311
+
308
312
  spec_list = gem_list.map do |s|
309
313
  dependencies = s[:dependencies].map do |name, requirement|
310
314
  dep = well_formed_dependency(name, requirement.split(", "))
@@ -106,13 +106,17 @@ module Bundler
106
106
 
107
107
  # returns a list of the dependencies
108
108
  def unmet_dependency_names
109
- names = []
110
- each{|s| names.push(*s.dependencies.map{|d| d.name }) }
111
- names.uniq!
109
+ names = dependency_names
112
110
  names.delete_if{|n| n == "bundler" }
113
111
  names.select{|n| search(n).empty? }
114
112
  end
115
113
 
114
+ def dependency_names
115
+ names = []
116
+ each{|s| names.push(*s.dependencies.map{|d| d.name }) }
117
+ names.uniq
118
+ end
119
+
116
120
  def use(other, override_dupes = false)
117
121
  return unless other
118
122
  other.each do |s|
@@ -23,7 +23,7 @@ module Gem
23
23
 
24
24
  def full_gem_path
25
25
  source.respond_to?(:path) ?
26
- Pathname.new(loaded_from).dirname.expand_path(Bundler.root).to_s :
26
+ Pathname.new(loaded_from).dirname.expand_path(Bundler.root).to_s.untaint :
27
27
  rg_full_gem_path
28
28
  end
29
29
 
@@ -5,7 +5,8 @@ require 'rubygems/spec_fetcher'
5
5
  module Bundler
6
6
  class Source
7
7
  class Rubygems < Source
8
- API_REQUEST_LIMIT = 100 # threshold for switching back to the modern index instead of fetching every spec
8
+ # threshold for switching back to the modern index instead of fetching every spec
9
+ API_REQUEST_LIMIT = 100
9
10
 
10
11
  attr_reader :remotes, :caches
11
12
 
@@ -302,6 +303,20 @@ module Bundler
302
303
  Bundler.ui.info "" if !Bundler.ui.debug? # new line now that the dots are over
303
304
  end
304
305
 
306
+ # Suppose the gem Foo depends on the gem Bar. Foo exists in Source A. Bar has some versions that exist in both
307
+ # sources A and B. At this point, the API request will have found all the versions of Bar in source A,
308
+ # but will not have found any versions of Bar from source B, which is a problem if the requested version
309
+ # of Foo specifically depends on a version of Bar that is only found in source B. This ensures that for
310
+ # each spec we found, we add all possible versions from all sources to the index.
311
+ begin
312
+ idxcount = idx.size
313
+ api_fetchers.each do |f|
314
+ Bundler.ui.info "Fetching version metadata from #{f.uri}", Bundler.ui.debug?
315
+ idx.use f.specs(idx.dependency_names, self), true
316
+ Bundler.ui.info "" if !Bundler.ui.debug? # new line now that the dots are over
317
+ end
318
+ end until idxcount == idx.size
319
+
305
320
  if api_fetchers.any? && api_fetchers.all?{|f| f.use_api }
306
321
  # it's possible that gems from one source depend on gems from some
307
322
  # other source, so now we download gemspecs and iterate over those
@@ -310,7 +325,7 @@ module Bundler
310
325
 
311
326
  # if there are any cross-site gems we missed, get them now
312
327
  api_fetchers.each do |f|
313
- Bundler.ui.info "Fetching additional metadata from #{f.uri}", Bundler.ui.debug?
328
+ Bundler.ui.info "Fetching dependency metadata from #{f.uri}", Bundler.ui.debug?
314
329
  idx.use f.specs(unmet, self)
315
330
  Bundler.ui.info "" if !Bundler.ui.debug? # new line now that the dots are over
316
331
  end if unmet.any?
@@ -2,5 +2,5 @@ module Bundler
2
2
  # We're doing this because we might write tests that deal
3
3
  # with other versions of bundler and we are unsure how to
4
4
  # handle this better.
5
- VERSION = "1.7.12" unless defined?(::Bundler::VERSION)
5
+ VERSION = "1.7.13" unless defined?(::Bundler::VERSION)
6
6
  end
@@ -259,6 +259,52 @@ describe "gemcutter's dependency API" do
259
259
  should_be_installed "back_deps 1.0"
260
260
  end
261
261
 
262
+ it "fetches gem versions even when those gems are already installed" do
263
+ gemfile <<-G
264
+ source "#{source_uri}"
265
+ gem "rack", "1.0.0"
266
+ G
267
+ bundle :install, :artifice => "endpoint_extra_api"
268
+
269
+ build_repo4 do
270
+ build_gem "rack", "1.2" do |s|
271
+ s.executables = "rackup"
272
+ end
273
+ end
274
+
275
+ gemfile <<-G
276
+ source "#{source_uri}" do; end
277
+ source "#{source_uri}/extra"
278
+ gem "rack", "1.2"
279
+ G
280
+ bundle :install, :artifice => "endpoint_extra_api"
281
+ should_be_installed "rack 1.2"
282
+ end
283
+
284
+ it "considers all possible versions of dependencies from all api gem sources" do
285
+ # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that
286
+ # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0
287
+ # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other
288
+ # repo and installs it.
289
+ build_repo4 do
290
+ build_gem "activesupport", "1.2.0"
291
+ build_gem "somegem", "1.0.0" do |s|
292
+ s.add_dependency "activesupport", "1.2.3" #This version exists only in repo1
293
+ end
294
+ end
295
+
296
+ gemfile <<-G
297
+ source "#{source_uri}"
298
+ source "#{source_uri}/extra"
299
+ gem 'somegem', '1.0.0'
300
+ G
301
+
302
+ bundle :install, :artifice => "endpoint_extra_api"
303
+
304
+ should_be_installed "somegem 1.0.0"
305
+ should_be_installed "activesupport 1.2.3"
306
+ end
307
+
262
308
  it "prints API output properly with back deps" do
263
309
  build_repo2 do
264
310
  build_gem "back_deps" do |s|
@@ -279,7 +325,7 @@ describe "gemcutter's dependency API" do
279
325
  expect(out).to include("Fetching source index from http://localgemserver.test/extra")
280
326
  end
281
327
 
282
- it "does not fetch every specs if the index of gems is large when doing back deps" do
328
+ it "does not fetch every spec if the index of gems is large when doing back deps" do
283
329
  build_repo2 do
284
330
  build_gem "back_deps" do |s|
285
331
  s.add_dependency "foo"
@@ -14,14 +14,14 @@ require 'sinatra/base'
14
14
  class Endpoint < Sinatra::Base
15
15
 
16
16
  helpers do
17
- def dependencies_for(gem_names, marshal = gem_repo1("specs.4.8"))
17
+ def dependencies_for(gem_names, gem_repo = gem_repo1)
18
18
  return [] if gem_names.nil? || gem_names.empty?
19
19
 
20
20
  require 'rubygems'
21
21
  require 'bundler'
22
22
  Bundler::Deprecate.skip_during do
23
- Marshal.load(File.open(marshal).read).map do |name, version, platform|
24
- spec = load_spec(name, version, platform)
23
+ Marshal.load(File.open(gem_repo.join("specs.4.8")).read).map do |name, version, platform|
24
+ spec = load_spec(name, version, platform, gem_repo)
25
25
  if gem_names.include?(spec.name)
26
26
  {
27
27
  :name => spec.name,
@@ -36,10 +36,10 @@ class Endpoint < Sinatra::Base
36
36
  end
37
37
  end
38
38
 
39
- def load_spec(name, version, platform)
39
+ def load_spec(name, version, platform, gem_repo)
40
40
  full_name = "#{name}-#{version}"
41
41
  full_name += "-#{platform}" if platform != "ruby"
42
- Marshal.load(Gem.inflate(File.open(gem_repo1("quick/Marshal.4.8/#{full_name}.gemspec.rz")).read))
42
+ Marshal.load(Gem.inflate(File.open(gem_repo.join("quick/Marshal.4.8/#{full_name}.gemspec.rz")).read))
43
43
  end
44
44
  end
45
45
 
@@ -0,0 +1,32 @@
1
+ require File.expand_path("../endpoint", __FILE__)
2
+
3
+ Artifice.deactivate
4
+
5
+ class EndpointExtraApi < Endpoint
6
+ get "/extra/api/v1/dependencies" do
7
+ deps = dependencies_for(params[:gems], gem_repo4)
8
+ Marshal.dump(deps)
9
+ end
10
+
11
+ get "/extra/specs.4.8.gz" do
12
+ File.read("#{gem_repo4}/specs.4.8.gz")
13
+ end
14
+
15
+ get "/extra/prerelease_specs.4.8.gz" do
16
+ File.read("#{gem_repo4}/prerelease_specs.4.8.gz")
17
+ end
18
+
19
+ get "/extra/quick/Marshal.4.8/:id" do
20
+ redirect "/extra/fetch/actual/gem/#{params[:id]}"
21
+ end
22
+
23
+ get "/extra/fetch/actual/gem/:id" do
24
+ File.read("#{gem_repo4}/quick/Marshal.4.8/#{params[:id]}")
25
+ end
26
+
27
+ get "/extra/gems/:id" do
28
+ File.read("#{gem_repo4}/gems/#{params[:id]}")
29
+ end
30
+ end
31
+
32
+ Artifice.activate_with(EndpointExtraApi)
@@ -260,6 +260,14 @@ module Spec
260
260
  FileUtils.rm_rf Dir[gem_repo3("prerelease*")]
261
261
  end
262
262
 
263
+ # A repo that has no pre-installed gems included. (The caller completely determines the contents with the block)
264
+ def build_repo4(&blk)
265
+ FileUtils.rm_rf gem_repo4
266
+ build_repo(gem_repo4) do
267
+ yield if block_given?
268
+ end
269
+ end
270
+
263
271
  def update_repo2
264
272
  update_repo gem_repo2 do
265
273
  build_gem "rack", "1.2" do |s|
@@ -625,57 +633,58 @@ module Spec
625
633
  end
626
634
  end
627
635
 
628
- TEST_CERT=<<CERT
629
- -----BEGIN CERTIFICATE-----
630
- MIIDMjCCAhqgAwIBAgIBATANBgkqhkiG9w0BAQUFADAnMQwwCgYDVQQDDAN5b3Ux
631
- FzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMB4XDTE0MDIwNTE0MTEwNloXDTE1MDIw
632
- NTE0MTEwNlowJzEMMAoGA1UEAwwDeW91MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBs
633
- ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANlvFdpN43c4DMS9Jo06
634
- m0a7k3bQ3HWQ1yrYhZMi77F1F73NpBknYHIzDktQpGn6hs/4QFJT4m4zNEBF47UL
635
- jHU5nTK5rjkS3niGYUjvh3ZEzVeo9zHUlD/UwflDo4ALl3TSo2KY/KdPS/UTdLXL
636
- ajkQvaVJtEDgBPE3DPhlj5whp+Ik3mDHej7qpV6F502leAwYaFyOtlEG/ZGNG+nZ
637
- L0clH0j77HpP42AylHDi+vakEM3xcjo9BeWQ6Vkboic93c9RTt6CWBWxMQP7Nol1
638
- MOebz9XOSQclxpxWteXNfPRtMdAhmRl76SMI8ywzThNPpa4EH/yz34ftebVOgKyM
639
- nd0CAwEAAaNpMGcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFA7D
640
- n9qo0np23qi3aOYuAAPn/5IdMBYGA1UdEQQPMA2BC3lvdUBleGFtcGxlMBYGA1Ud
641
- EgQPMA2BC3lvdUBleGFtcGxlMA0GCSqGSIb3DQEBBQUAA4IBAQB5N+71KiNX3k0Y
642
- FWizUHUYOqo+fEk3aBoFbOFcx+M5TXPiA91pH8mgyyD9tVzqiYgCGk7g/UrOv5Ec
643
- NHjYqsFecNPayj8u2Po07pp2Nbc9aqt9uxoRSENZ72Dzrk3YDStgji7Sk/LZW5Kn
644
- 4JFTeRof+B7/ZijLZWBEnMfSHSIPaQu0Ig6c19OEhiiuhGOn4WUhGFYCadciKgnj
645
- PtaUcxKuvXMwRPG3NZqeGZivTlrhAmmf7iPV/E334qzMytvAV8zycZFj2J5hvyLk
646
- 432zLezmbFGc0uLIUjXDu9bM5WYGy1BOTuzuApyuCs9S1greqz17f8f01J87DX3X
647
- wJsshs4b
648
- -----END CERTIFICATE-----
649
- CERT
650
-
651
- TEST_PKEY=<<PKEY
652
- -----BEGIN RSA PRIVATE KEY-----
653
- MIIEowIBAAKCAQEA2W8V2k3jdzgMxL0mjTqbRruTdtDcdZDXKtiFkyLvsXUXvc2k
654
- GSdgcjMOS1CkafqGz/hAUlPibjM0QEXjtQuMdTmdMrmuORLeeIZhSO+HdkTNV6j3
655
- MdSUP9TB+UOjgAuXdNKjYpj8p09L9RN0tctqORC9pUm0QOAE8TcM+GWPnCGn4iTe
656
- YMd6PuqlXoXnTaV4DBhoXI62UQb9kY0b6dkvRyUfSPvsek/jYDKUcOL69qQQzfFy
657
- Oj0F5ZDpWRuiJz3dz1FO3oJYFbExA/s2iXUw55vP1c5JByXGnFa15c189G0x0CGZ
658
- GXvpIwjzLDNOE0+lrgQf/LPfh+15tU6ArIyd3QIDAQABAoIBACbDqz20TS1gDMa2
659
- gj0DidNedbflHKjJHdNBru7Ad8NHgOgR1YO2hXdWquG6itVqGMbTF4SV9/R1pIcg
660
- 7qvEV1I+50u31tvOBWOvcYCzU48+TO2n7gowQA3xPHPYHzog1uu48fAOHl0lwgD7
661
- av9OOK3b0jO5pC08wyTOD73pPWU0NrkTh2+N364leIi1pNuI1z4V+nEuIIm7XpVd
662
- 5V4sXidMTiEMJwE6baEDfTjHKaoRndXrrPo3ryIXmcX7Ag1SwAQwF5fBCRToCgIx
663
- dszEZB1bJD5gA6r+eGnJLB/F60nK607az5o3EdguoB2LKa6q6krpaRCmZU5svvoF
664
- J7xgBPECgYEA8RIzHAQ3zbaibKdnllBLIgsqGdSzebTLKheFuigRotEV3Or/z5Lg
665
- k/nVnThWVkTOSRqXTNpJAME6a4KTdcVSxYP+SdZVO1esazHrGb7xPVb7MWSE1cqp
666
- WEk3Yy8OUOPoPQMc4dyGzd30Mi8IBB6gnFIYOTrpUo0XtkBv8rGGhfsCgYEA5uYn
667
- 6QgL4NqNT84IXylmMb5ia3iBt6lhxI/A28CDtQvfScl4eYK0IjBwdfG6E1vJgyzg
668
- nJzv3xEVo9bz+Kq7CcThWpK5JQaPnsV0Q74Wjk0ShHet15txOdJuKImnh5F6lylC
669
- GTLR9gnptytfMH/uuw4ws0Q2kcg4l5NHKOWOnAcCgYEAvAwIVkhsB0n59Wu4gCZu
670
- FUZENxYWUk/XUyQ6KnZrG2ih90xQ8+iMyqFOIm/52R2fFKNrdoWoALC6E3ct8+ZS
671
- pMRLrelFXx8K3it4SwMJR2H8XBEfFW4bH0UtsW7Zafv+AunUs9LETP5gKG1LgXsq
672
- qgXX43yy2LQ61O365YPZfdUCgYBVbTvA3MhARbvYldrFEnUL3GtfZbNgdxuD9Mee
673
- xig0eJMBIrgfBLuOlqtVB70XYnM4xAbKCso4loKSHnofO1N99siFkRlM2JOUY2tz
674
- kMWZmmxKdFjuF0WZ5f/5oYxI/QsFGC+rUQEbbWl56mMKd5qkvEhKWudxoklF0yiV
675
- ufC8SwKBgDWb8iWqWN5a/kfvKoxFcDM74UHk/SeKMGAL+ujKLf58F+CbweM5pX9C
676
- EUsxeoUEraVWTiyFVNqD81rCdceus9TdBj0ZIK1vUttaRZyrMAwF0uQSfjtxsOpd
677
- l69BkyvzjgDPkmOHVGiSZDLi3YDvypbUpo6LOy4v5rVg5U2F/A0v
678
- -----END RSA PRIVATE KEY-----
679
- PKEY
636
+ TEST_CERT = <<-CERT.gsub /^\s*/, ''
637
+ -----BEGIN CERTIFICATE-----
638
+ MIIDMjCCAhqgAwIBAgIBATANBgkqhkiG9w0BAQUFADAnMQwwCgYDVQQDDAN5b3Ux
639
+ FzAVBgoJkiaJk/IsZAEZFgdleGFtcGxlMB4XDTE1MDIwODAwMTIyM1oXDTQyMDYy
640
+ NTAwMTIyM1owJzEMMAoGA1UEAwwDeW91MRcwFQYKCZImiZPyLGQBGRYHZXhhbXBs
641
+ ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANlvFdpN43c4DMS9Jo06
642
+ m0a7k3bQ3HWQ1yrYhZMi77F1F73NpBknYHIzDktQpGn6hs/4QFJT4m4zNEBF47UL
643
+ jHU5nTK5rjkS3niGYUjvh3ZEzVeo9zHUlD/UwflDo4ALl3TSo2KY/KdPS/UTdLXL
644
+ ajkQvaVJtEDgBPE3DPhlj5whp+Ik3mDHej7qpV6F502leAwYaFyOtlEG/ZGNG+nZ
645
+ L0clH0j77HpP42AylHDi+vakEM3xcjo9BeWQ6Vkboic93c9RTt6CWBWxMQP7Nol1
646
+ MOebz9XOSQclxpxWteXNfPRtMdAhmRl76SMI8ywzThNPpa4EH/yz34ftebVOgKyM
647
+ nd0CAwEAAaNpMGcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFA7D
648
+ n9qo0np23qi3aOYuAAPn/5IdMBYGA1UdEQQPMA2BC3lvdUBleGFtcGxlMBYGA1Ud
649
+ EgQPMA2BC3lvdUBleGFtcGxlMA0GCSqGSIb3DQEBBQUAA4IBAQA7Gyk62sWOUX/N
650
+ vk4tJrgKESph6Ns8+E36A7n3jt8zCep8ldzMvwTWquf9iqhsC68FilEoaDnUlWw7
651
+ d6oNuaFkv7zfrWGLlvqQJC+cu2X5EpcCksg5oRp8VNbwJysJ6JgwosxzROII8eXc
652
+ R+j1j6mDvQYqig2QOnzf480pjaqbP+tspfDFZbhKPrgM3Blrb3ZYuFpv4zkqI7aB
653
+ 6fuk2DUhNO1CuwrJA84TqC+jGo73bDKaT5hrIDiaJRrN5+zcWja2uEWrj5jSbep4
654
+ oXdEdyH73hOHMBP40uds3PqnUsxEJhzjB2sCCe1geV24kw9J4m7EQXPVkUKDgKrt
655
+ LlpDmOoo
656
+ -----END CERTIFICATE-----
657
+ CERT
658
+
659
+ TEST_PKEY = <<-PKEY.gsub /^\s*/, ''
660
+ -----BEGIN RSA PRIVATE KEY-----
661
+ MIIEowIBAAKCAQEA2W8V2k3jdzgMxL0mjTqbRruTdtDcdZDXKtiFkyLvsXUXvc2k
662
+ GSdgcjMOS1CkafqGz/hAUlPibjM0QEXjtQuMdTmdMrmuORLeeIZhSO+HdkTNV6j3
663
+ MdSUP9TB+UOjgAuXdNKjYpj8p09L9RN0tctqORC9pUm0QOAE8TcM+GWPnCGn4iTe
664
+ YMd6PuqlXoXnTaV4DBhoXI62UQb9kY0b6dkvRyUfSPvsek/jYDKUcOL69qQQzfFy
665
+ Oj0F5ZDpWRuiJz3dz1FO3oJYFbExA/s2iXUw55vP1c5JByXGnFa15c189G0x0CGZ
666
+ GXvpIwjzLDNOE0+lrgQf/LPfh+15tU6ArIyd3QIDAQABAoIBACbDqz20TS1gDMa2
667
+ gj0DidNedbflHKjJHdNBru7Ad8NHgOgR1YO2hXdWquG6itVqGMbTF4SV9/R1pIcg
668
+ 7qvEV1I+50u31tvOBWOvcYCzU48+TO2n7gowQA3xPHPYHzog1uu48fAOHl0lwgD7
669
+ av9OOK3b0jO5pC08wyTOD73pPWU0NrkTh2+N364leIi1pNuI1z4V+nEuIIm7XpVd
670
+ 5V4sXidMTiEMJwE6baEDfTjHKaoRndXrrPo3ryIXmcX7Ag1SwAQwF5fBCRToCgIx
671
+ dszEZB1bJD5gA6r+eGnJLB/F60nK607az5o3EdguoB2LKa6q6krpaRCmZU5svvoF
672
+ J7xgBPECgYEA8RIzHAQ3zbaibKdnllBLIgsqGdSzebTLKheFuigRotEV3Or/z5Lg
673
+ k/nVnThWVkTOSRqXTNpJAME6a4KTdcVSxYP+SdZVO1esazHrGb7xPVb7MWSE1cqp
674
+ WEk3Yy8OUOPoPQMc4dyGzd30Mi8IBB6gnFIYOTrpUo0XtkBv8rGGhfsCgYEA5uYn
675
+ 6QgL4NqNT84IXylmMb5ia3iBt6lhxI/A28CDtQvfScl4eYK0IjBwdfG6E1vJgyzg
676
+ nJzv3xEVo9bz+Kq7CcThWpK5JQaPnsV0Q74Wjk0ShHet15txOdJuKImnh5F6lylC
677
+ GTLR9gnptytfMH/uuw4ws0Q2kcg4l5NHKOWOnAcCgYEAvAwIVkhsB0n59Wu4gCZu
678
+ FUZENxYWUk/XUyQ6KnZrG2ih90xQ8+iMyqFOIm/52R2fFKNrdoWoALC6E3ct8+ZS
679
+ pMRLrelFXx8K3it4SwMJR2H8XBEfFW4bH0UtsW7Zafv+AunUs9LETP5gKG1LgXsq
680
+ qgXX43yy2LQ61O365YPZfdUCgYBVbTvA3MhARbvYldrFEnUL3GtfZbNgdxuD9Mee
681
+ xig0eJMBIrgfBLuOlqtVB70XYnM4xAbKCso4loKSHnofO1N99siFkRlM2JOUY2tz
682
+ kMWZmmxKdFjuF0WZ5f/5oYxI/QsFGC+rUQEbbWl56mMKd5qkvEhKWudxoklF0yiV
683
+ ufC8SwKBgDWb8iWqWN5a/kfvKoxFcDM74UHk/SeKMGAL+ujKLf58F+CbweM5pX9C
684
+ EUsxeoUEraVWTiyFVNqD81rCdceus9TdBj0ZIK1vUttaRZyrMAwF0uQSfjtxsOpd
685
+ l69BkyvzjgDPkmOHVGiSZDLi3YDvypbUpo6LOy4v5rVg5U2F/A0v
686
+ -----END RSA PRIVATE KEY-----
687
+ PKEY
688
+
680
689
  end
681
690
  end
@@ -60,6 +60,10 @@ module Spec
60
60
  tmp("gems/remote3", *args)
61
61
  end
62
62
 
63
+ def gem_repo4(*args)
64
+ tmp("gems/remote4", *args)
65
+ end
66
+
63
67
  def security_repo(*args)
64
68
  tmp("gems/security_repo", *args)
65
69
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.12
4
+ version: 1.7.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-01-12 00:00:00.000000000 Z
14
+ date: 2015-02-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: mustache
@@ -351,6 +351,7 @@ files:
351
351
  - spec/support/artifice/endpoint_basic_authentication.rb
352
352
  - spec/support/artifice/endpoint_creds_diff_host.rb
353
353
  - spec/support/artifice/endpoint_extra.rb
354
+ - spec/support/artifice/endpoint_extra_api.rb
354
355
  - spec/support/artifice/endpoint_extra_missing.rb
355
356
  - spec/support/artifice/endpoint_fallback.rb
356
357
  - spec/support/artifice/endpoint_host_redirect.rb
@@ -486,6 +487,7 @@ test_files:
486
487
  - spec/support/artifice/endpoint_basic_authentication.rb
487
488
  - spec/support/artifice/endpoint_creds_diff_host.rb
488
489
  - spec/support/artifice/endpoint_extra.rb
490
+ - spec/support/artifice/endpoint_extra_api.rb
489
491
  - spec/support/artifice/endpoint_extra_missing.rb
490
492
  - spec/support/artifice/endpoint_fallback.rb
491
493
  - spec/support/artifice/endpoint_host_redirect.rb