bundler 1.7.15 → 1.8.0.pre

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.

Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -14
  3. data/.rspec +1 -0
  4. data/.travis.yml +22 -15
  5. data/CHANGELOG.md +43 -13
  6. data/CODE_OF_CONDUCT.md +40 -0
  7. data/CONTRIBUTING.md +14 -12
  8. data/DEVELOPMENT.md +4 -2
  9. data/ISSUES.md +1 -1
  10. data/README.md +10 -14
  11. data/Rakefile +10 -10
  12. data/bin/bundle +1 -1
  13. data/bundler.gemspec +5 -4
  14. data/lib/bundler.rb +22 -3
  15. data/lib/bundler/anonymizable_uri.rb +24 -8
  16. data/lib/bundler/cli.rb +103 -66
  17. data/lib/bundler/cli/cache.rb +1 -0
  18. data/lib/bundler/cli/clean.rb +11 -4
  19. data/lib/bundler/cli/common.rb +2 -0
  20. data/lib/bundler/cli/console.rb +22 -26
  21. data/lib/bundler/cli/exec.rb +29 -22
  22. data/lib/bundler/cli/gem.rb +125 -37
  23. data/lib/bundler/cli/install.rb +22 -9
  24. data/lib/bundler/cli/outdated.rb +1 -1
  25. data/lib/bundler/cli/package.rb +8 -1
  26. data/lib/bundler/cli/show.rb +29 -3
  27. data/lib/bundler/cli/update.rb +2 -2
  28. data/lib/bundler/cli/viz.rb +1 -1
  29. data/lib/bundler/definition.rb +14 -22
  30. data/lib/bundler/dependency.rb +8 -1
  31. data/lib/bundler/dsl.rb +17 -4
  32. data/lib/bundler/endpoint_specification.rb +1 -1
  33. data/lib/bundler/env.rb +44 -25
  34. data/lib/bundler/fetcher.rb +33 -25
  35. data/lib/bundler/friendly_errors.rb +38 -5
  36. data/lib/bundler/gem_helper.rb +16 -10
  37. data/lib/bundler/gem_helpers.rb +1 -0
  38. data/lib/bundler/graph.rb +4 -1
  39. data/lib/bundler/index.rb +15 -25
  40. data/lib/bundler/installer.rb +6 -6
  41. data/lib/bundler/lockfile_parser.rb +7 -7
  42. data/lib/bundler/resolver.rb +2 -1
  43. data/lib/bundler/ruby_version.rb +1 -1
  44. data/lib/bundler/rubygems_ext.rb +1 -0
  45. data/lib/bundler/rubygems_integration.rb +1 -1
  46. data/lib/bundler/runtime.rb +22 -40
  47. data/lib/bundler/settings.rb +14 -5
  48. data/lib/bundler/setup.rb +2 -1
  49. data/lib/bundler/shared_helpers.rb +56 -4
  50. data/lib/bundler/source.rb +8 -9
  51. data/lib/bundler/source/git.rb +5 -1
  52. data/lib/bundler/source/git/git_proxy.rb +4 -0
  53. data/lib/bundler/source/path.rb +8 -11
  54. data/lib/bundler/source/path/installer.rb +0 -2
  55. data/lib/bundler/source/rubygems.rb +58 -72
  56. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +13 -0
  57. data/lib/bundler/templates/newgem/LICENSE.txt.tt +17 -18
  58. data/lib/bundler/templates/newgem/README.md.tt +9 -1
  59. data/lib/bundler/templates/newgem/Rakefile.tt +2 -0
  60. data/lib/bundler/templates/newgem/bin/console.tt +14 -0
  61. data/lib/bundler/templates/newgem/bin/setup.tt +7 -0
  62. data/lib/bundler/templates/newgem/exe/newgem.tt +3 -0
  63. data/lib/bundler/templates/newgem/gitignore.tt +2 -0
  64. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +1 -1
  65. data/lib/bundler/templates/newgem/newgem.gemspec.tt +17 -13
  66. data/lib/bundler/templates/newgem/test/test_newgem.rb.tt +1 -1
  67. data/lib/bundler/ui/shell.rb +1 -1
  68. data/lib/bundler/version.rb +1 -1
  69. data/lib/bundler/worker.rb +73 -0
  70. data/man/bundle-config.ronn +17 -15
  71. data/man/bundle-install.ronn +102 -93
  72. data/man/bundle-update.ronn +39 -30
  73. data/man/bundle.ronn +6 -0
  74. data/man/gemfile.5.ronn +74 -13
  75. metadata +10 -231
  76. data/lib/bundler/parallel_workers.rb +0 -18
  77. data/lib/bundler/parallel_workers/thread_worker.rb +0 -30
  78. data/lib/bundler/parallel_workers/unix_worker.rb +0 -101
  79. data/lib/bundler/parallel_workers/worker.rb +0 -69
  80. data/lib/bundler/templates/newgem/bin/newgem.tt +0 -3
  81. data/spec/bundler/anonymizable_uri_spec.rb +0 -32
  82. data/spec/bundler/bundler_spec.rb +0 -72
  83. data/spec/bundler/cli_spec.rb +0 -16
  84. data/spec/bundler/definition_spec.rb +0 -22
  85. data/spec/bundler/dsl_spec.rb +0 -82
  86. data/spec/bundler/friendly_errors_spec.rb +0 -13
  87. data/spec/bundler/gem_helper_spec.rb +0 -226
  88. data/spec/bundler/psyched_yaml_spec.rb +0 -8
  89. data/spec/bundler/retry_spec.rb +0 -59
  90. data/spec/bundler/settings_spec.rb +0 -13
  91. data/spec/bundler/source/rubygems_spec.rb +0 -25
  92. data/spec/bundler/source_list_spec.rb +0 -361
  93. data/spec/cache/gems_spec.rb +0 -284
  94. data/spec/cache/git_spec.rb +0 -188
  95. data/spec/cache/path_spec.rb +0 -121
  96. data/spec/cache/platform_spec.rb +0 -57
  97. data/spec/commands/binstubs_spec.rb +0 -219
  98. data/spec/commands/check_spec.rb +0 -278
  99. data/spec/commands/clean_spec.rb +0 -592
  100. data/spec/commands/config_spec.rb +0 -263
  101. data/spec/commands/console_spec.rb +0 -76
  102. data/spec/commands/exec_spec.rb +0 -309
  103. data/spec/commands/help_spec.rb +0 -39
  104. data/spec/commands/init_spec.rb +0 -39
  105. data/spec/commands/inject_spec.rb +0 -78
  106. data/spec/commands/licenses_spec.rb +0 -18
  107. data/spec/commands/newgem_spec.rb +0 -428
  108. data/spec/commands/open_spec.rb +0 -68
  109. data/spec/commands/outdated_spec.rb +0 -156
  110. data/spec/commands/package_spec.rb +0 -114
  111. data/spec/commands/show_spec.rb +0 -125
  112. data/spec/install/binstubs_spec.rb +0 -24
  113. data/spec/install/bundler_spec.rb +0 -146
  114. data/spec/install/deploy_spec.rb +0 -250
  115. data/spec/install/gemfile/gemspec_spec.rb +0 -170
  116. data/spec/install/gemfile/git_spec.rb +0 -967
  117. data/spec/install/gemfile/path_spec.rb +0 -500
  118. data/spec/install/gemfile_spec.rb +0 -44
  119. data/spec/install/gems/c_ext_spec.rb +0 -48
  120. data/spec/install/gems/dependency_api_spec.rb +0 -652
  121. data/spec/install/gems/env_spec.rb +0 -107
  122. data/spec/install/gems/flex_spec.rb +0 -314
  123. data/spec/install/gems/groups_spec.rb +0 -308
  124. data/spec/install/gems/mirror_spec.rb +0 -39
  125. data/spec/install/gems/platform_spec.rb +0 -195
  126. data/spec/install/gems/post_install_spec.rb +0 -121
  127. data/spec/install/gems/resolving_spec.rb +0 -124
  128. data/spec/install/gems/simple_case_spec.rb +0 -377
  129. data/spec/install/gems/sources_spec.rb +0 -386
  130. data/spec/install/gems/standalone_spec.rb +0 -260
  131. data/spec/install/gems/sudo_spec.rb +0 -136
  132. data/spec/install/gems/win32_spec.rb +0 -26
  133. data/spec/install/gemspecs_spec.rb +0 -50
  134. data/spec/install/path_spec.rb +0 -150
  135. data/spec/install/post_bundle_message_spec.rb +0 -142
  136. data/spec/install/prereleases_spec.rb +0 -43
  137. data/spec/install/security_policy_spec.rb +0 -77
  138. data/spec/install/upgrade_spec.rb +0 -26
  139. data/spec/lock/git_spec.rb +0 -34
  140. data/spec/lock/lockfile_spec.rb +0 -924
  141. data/spec/other/bundle_ruby_spec.rb +0 -142
  142. data/spec/other/cli_dispatch_spec.rb +0 -21
  143. data/spec/other/ext_spec.rb +0 -60
  144. data/spec/other/platform_spec.rb +0 -1285
  145. data/spec/other/ssl_cert_spec.rb +0 -23
  146. data/spec/quality_spec.rb +0 -88
  147. data/spec/realworld/dependency_api_spec.rb +0 -60
  148. data/spec/realworld/edgecases_spec.rb +0 -212
  149. data/spec/realworld/parallel_spec.rb +0 -71
  150. data/spec/resolver/basic_spec.rb +0 -66
  151. data/spec/resolver/platform_spec.rb +0 -88
  152. data/spec/runtime/executable_spec.rb +0 -149
  153. data/spec/runtime/load_spec.rb +0 -107
  154. data/spec/runtime/platform_spec.rb +0 -90
  155. data/spec/runtime/require_spec.rb +0 -332
  156. data/spec/runtime/setup_spec.rb +0 -853
  157. data/spec/runtime/with_clean_env_spec.rb +0 -91
  158. data/spec/spec_helper.rb +0 -123
  159. data/spec/support/artifice/endopint_marshal_fail_basic_authentication.rb +0 -13
  160. data/spec/support/artifice/endpoint.rb +0 -71
  161. data/spec/support/artifice/endpoint_500.rb +0 -37
  162. data/spec/support/artifice/endpoint_api_forbidden.rb +0 -11
  163. data/spec/support/artifice/endpoint_api_missing.rb +0 -16
  164. data/spec/support/artifice/endpoint_basic_authentication.rb +0 -13
  165. data/spec/support/artifice/endpoint_creds_diff_host.rb +0 -38
  166. data/spec/support/artifice/endpoint_extra.rb +0 -31
  167. data/spec/support/artifice/endpoint_extra_api.rb +0 -32
  168. data/spec/support/artifice/endpoint_extra_missing.rb +0 -15
  169. data/spec/support/artifice/endpoint_fallback.rb +0 -17
  170. data/spec/support/artifice/endpoint_host_redirect.rb +0 -15
  171. data/spec/support/artifice/endpoint_marshal_fail.rb +0 -11
  172. data/spec/support/artifice/endpoint_redirect.rb +0 -15
  173. data/spec/support/artifice/endpoint_strict_basic_authentication.rb +0 -18
  174. data/spec/support/artifice/endpoint_timeout.rb +0 -13
  175. data/spec/support/builders.rb +0 -693
  176. data/spec/support/fakeweb/rack-1.0.0.marshal +0 -2
  177. data/spec/support/fakeweb/windows.rb +0 -23
  178. data/spec/support/hax.rb +0 -22
  179. data/spec/support/helpers.rb +0 -361
  180. data/spec/support/indexes.rb +0 -280
  181. data/spec/support/matchers.rb +0 -77
  182. data/spec/support/path.rb +0 -85
  183. data/spec/support/permissions.rb +0 -10
  184. data/spec/support/platforms.rb +0 -94
  185. data/spec/support/ruby_ext.rb +0 -20
  186. data/spec/support/rubygems_ext.rb +0 -39
  187. data/spec/support/streams.rb +0 -13
  188. data/spec/support/sudo.rb +0 -16
  189. data/spec/update/gems_spec.rb +0 -201
  190. data/spec/update/git_spec.rb +0 -283
  191. data/spec/update/path_spec.rb +0 -18
@@ -1,39 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle install with a mirror configured" do
4
- describe "when the mirror does not match the gem source" do
5
- before :each do
6
- gemfile <<-G
7
- source "file://#{gem_repo1}"
8
-
9
- gem "rack"
10
- G
11
- bundle "config --local mirror.http://gems.example.org http://gem-mirror.example.org"
12
- end
13
-
14
- it "installs from the normal location" do
15
- bundle :install
16
- expect(out).to include("Fetching source index from file:#{gem_repo1}")
17
- should_be_installed "rack 1.0"
18
- end
19
- end
20
-
21
- describe "when the gem source matches a configured mirror" do
22
- before :each do
23
- gemfile <<-G
24
- # This source is bogus and doesn't have the gem we're looking for
25
- source "file://#{gem_repo2}"
26
-
27
- gem "rack"
28
- G
29
- bundle "config --local mirror.file://#{gem_repo2} file://#{gem_repo1}"
30
- end
31
-
32
- it "installs the gem from the mirror" do
33
- bundle :install
34
- expect(out).to include("Fetching source index from file:#{gem_repo1}")
35
- expect(out).not_to include("Fetching source index from file:#{gem_repo2}")
36
- should_be_installed "rack 1.0"
37
- end
38
- end
39
- end
@@ -1,195 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle install across platforms" do
4
- it "maintains the same lockfile if all gems are compatible across platforms" do
5
- lockfile <<-G
6
- GEM
7
- remote: file:#{gem_repo1}/
8
- specs:
9
- rack (0.9.1)
10
-
11
- PLATFORMS
12
- #{not_local}
13
-
14
- DEPENDENCIES
15
- rack
16
- G
17
-
18
- install_gemfile <<-G
19
- source "file://#{gem_repo1}"
20
-
21
- gem "rack"
22
- G
23
-
24
- should_be_installed "rack 0.9.1"
25
- end
26
-
27
- it "pulls in the correct platform specific gem" do
28
- lockfile <<-G
29
- GEM
30
- remote: file:#{gem_repo1}
31
- specs:
32
- platform_specific (1.0)
33
- platform_specific (1.0-java)
34
- platform_specific (1.0-x86-mswin32)
35
-
36
- PLATFORMS
37
- ruby
38
-
39
- DEPENDENCIES
40
- platform_specific
41
- G
42
-
43
- simulate_platform "java"
44
- install_gemfile <<-G
45
- source "file://#{gem_repo1}"
46
-
47
- gem "platform_specific"
48
- G
49
-
50
- should_be_installed "platform_specific 1.0 JAVA"
51
- end
52
-
53
- it "works with gems that have different dependencies" do
54
- simulate_platform "java"
55
- install_gemfile <<-G
56
- source "file://#{gem_repo1}"
57
-
58
- gem "nokogiri"
59
- G
60
-
61
- should_be_installed "nokogiri 1.4.2 JAVA", "weakling 0.0.3"
62
-
63
- simulate_new_machine
64
-
65
- simulate_platform "ruby"
66
- install_gemfile <<-G
67
- source "file://#{gem_repo1}"
68
-
69
- gem "nokogiri"
70
- G
71
-
72
- should_be_installed "nokogiri 1.4.2"
73
- should_not_be_installed "weakling"
74
- end
75
-
76
- it "works the other way with gems that have different dependencies" do
77
- simulate_platform "ruby"
78
- install_gemfile <<-G
79
- source "file://#{gem_repo1}"
80
-
81
- gem "nokogiri"
82
- G
83
-
84
- simulate_platform "java"
85
- bundle "install"
86
-
87
- should_be_installed "nokogiri 1.4.2 JAVA", "weakling 0.0.3"
88
- end
89
-
90
- it "fetches gems again after changing the version of Ruby" do
91
- gemfile <<-G
92
- source "file://#{gem_repo1}"
93
-
94
- gem "rack", "1.0.0"
95
- G
96
-
97
- bundle "install --path vendor/bundle"
98
-
99
- new_version = Gem::ConfigMap[:ruby_version] == "1.8" ? "1.9.1" : "1.8"
100
- FileUtils.mv(vendored_gems, bundled_app("vendor/bundle", Gem.ruby_engine, new_version))
101
-
102
- bundle "install --path vendor/bundle"
103
- expect(vendored_gems("gems/rack-1.0.0")).to exist
104
- end
105
- end
106
-
107
- describe "bundle install with platform conditionals" do
108
- it "installs gems tagged w/ the current platforms" do
109
- install_gemfile <<-G
110
- source "file://#{gem_repo1}"
111
-
112
- platforms :#{local_tag} do
113
- gem "nokogiri"
114
- end
115
- G
116
-
117
- should_be_installed "nokogiri 1.4.2"
118
- end
119
-
120
- it "does not install gems tagged w/ another platforms" do
121
- install_gemfile <<-G
122
- source "file://#{gem_repo1}"
123
- gem "rack"
124
- platforms :#{not_local_tag} do
125
- gem "nokogiri"
126
- end
127
- G
128
-
129
- should_be_installed "rack 1.0"
130
- should_not_be_installed "nokogiri 1.4.2"
131
- end
132
-
133
- it "installs gems tagged w/ the current platforms inline" do
134
- install_gemfile <<-G
135
- source "file://#{gem_repo1}"
136
- gem "nokogiri", :platforms => :#{local_tag}
137
- G
138
- should_be_installed "nokogiri 1.4.2"
139
- end
140
-
141
- it "does not install gems tagged w/ another platforms inline" do
142
- install_gemfile <<-G
143
- source "file://#{gem_repo1}"
144
- gem "rack"
145
- gem "nokogiri", :platforms => :#{not_local_tag}
146
- G
147
- should_be_installed "rack 1.0"
148
- should_not_be_installed "nokogiri 1.4.2"
149
- end
150
-
151
- it "installs gems tagged w/ the current platform inline" do
152
- install_gemfile <<-G
153
- source "file://#{gem_repo1}"
154
- gem "nokogiri", :platform => :#{local_tag}
155
- G
156
- should_be_installed "nokogiri 1.4.2"
157
- end
158
-
159
- it "doesn't install gems tagged w/ another platform inline" do
160
- install_gemfile <<-G
161
- source "file://#{gem_repo1}"
162
- gem "nokogiri", :platform => :#{not_local_tag}
163
- G
164
- should_not_be_installed "nokogiri 1.4.2"
165
- end
166
-
167
- it "does not blow up on sources with all platform-excluded specs" do
168
- build_git "foo"
169
-
170
- install_gemfile <<-G
171
- platform :#{not_local_tag} do
172
- gem "foo", :git => "#{lib_path('foo-1.0')}"
173
- end
174
- G
175
-
176
- bundle :show, :exitstatus => true
177
- expect(exitstatus).to eq(0)
178
- end
179
-
180
- end
181
-
182
- describe "when a gem has no architecture" do
183
- it "still installs correctly" do
184
- simulate_platform mswin
185
-
186
- gemfile <<-G
187
- # Try to install gem with nil arch
188
- source "http://localgemserver.test/"
189
- gem "rcov"
190
- G
191
-
192
- bundle :install, :fakeweb => "windows"
193
- should_be_installed "rcov 1.0.0"
194
- end
195
- end
@@ -1,121 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "bundle install with gem sources" do
4
- describe "when gems include post install messages" do
5
- it "should display the post-install messages after installing" do
6
- gemfile <<-G
7
- source "file://#{gem_repo1}"
8
- gem 'rack'
9
- gem 'thin'
10
- gem 'rack-obama'
11
- G
12
-
13
- bundle :install
14
- expect(out).to include("Post-install message from rack:")
15
- expect(out).to include("Rack's post install message")
16
- expect(out).to include("Post-install message from thin:")
17
- expect(out).to include("Thin's post install message")
18
- expect(out).to include("Post-install message from rack-obama:")
19
- expect(out).to include("Rack-obama's post install message")
20
- end
21
- end
22
-
23
- describe "when gems do not include post install messages" do
24
- it "should not display any post-install messages" do
25
- gemfile <<-G
26
- source "file://#{gem_repo1}"
27
- gem "activesupport"
28
- G
29
-
30
- bundle :install
31
- expect(out).not_to include("Post-install message")
32
- end
33
- end
34
-
35
- describe "when a dependecy includes a post install message" do
36
- it "should display the post install message" do
37
- gemfile <<-G
38
- source "file://#{gem_repo1}"
39
- gem 'rack_middleware'
40
- G
41
-
42
- bundle :install
43
- expect(out).to include("Post-install message from rack:")
44
- expect(out).to include("Rack's post install message")
45
- end
46
- end
47
- end
48
-
49
- describe "bundle install with git sources" do
50
- describe "when gems include post install messages" do
51
- it "should display the post-install messages after installing" do
52
- build_git "foo" do |s|
53
- s.post_install_message = "Foo's post install message"
54
- end
55
- gemfile <<-G
56
- source "file://#{gem_repo1}"
57
- gem 'foo', :git => '#{lib_path("foo-1.0")}'
58
- G
59
-
60
- bundle :install
61
- expect(out).to include("Post-install message from foo:")
62
- expect(out).to include("Foo's post install message")
63
- end
64
-
65
- it "should display the post-install messages if repo is updated" do
66
- build_git "foo" do |s|
67
- s.post_install_message = "Foo's post install message"
68
- end
69
- gemfile <<-G
70
- source "file://#{gem_repo1}"
71
- gem 'foo', :git => '#{lib_path("foo-1.0")}'
72
- G
73
- bundle :install
74
-
75
- build_git "foo", "1.1" do |s|
76
- s.post_install_message = "Foo's 1.1 post install message"
77
- end
78
- gemfile <<-G
79
- source "file://#{gem_repo1}"
80
- gem 'foo', :git => '#{lib_path("foo-1.1")}'
81
- G
82
- bundle :install
83
-
84
- expect(out).to include("Post-install message from foo:")
85
- expect(out).to include("Foo's 1.1 post install message")
86
- end
87
-
88
- it "should not display the post-install messages if repo is not updated" do
89
- build_git "foo" do |s|
90
- s.post_install_message = "Foo's post install message"
91
- end
92
- gemfile <<-G
93
- source "file://#{gem_repo1}"
94
- gem 'foo', :git => '#{lib_path("foo-1.0")}'
95
- G
96
-
97
- bundle :install
98
- expect(out).to include("Post-install message from foo:")
99
- expect(out).to include("Foo's post install message")
100
-
101
- bundle :install
102
- expect(out).not_to include("Post-install message")
103
- end
104
- end
105
-
106
- describe "when gems do not include post install messages" do
107
- it "should not display any post-install messages" do
108
- build_git "foo" do |s|
109
- s.post_install_message = nil
110
- end
111
- gemfile <<-G
112
- source "file://#{gem_repo1}"
113
- gem 'foo', :git => '#{lib_path("foo-1.0")}'
114
- G
115
-
116
- bundle :install
117
- expect(out).not_to include("Post-install message")
118
- end
119
- end
120
-
121
- end
@@ -1,124 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle install with gem sources" do
4
- describe "install time dependencies" do
5
- it "installs gems with implicit rake dependencies" do
6
- install_gemfile <<-G
7
- source "file://#{gem_repo1}"
8
- gem "with_implicit_rake_dep"
9
- gem "another_implicit_rake_dep"
10
- gem "rake"
11
- G
12
-
13
- run <<-R
14
- require 'implicit_rake_dep'
15
- require 'another_implicit_rake_dep'
16
- puts IMPLICIT_RAKE_DEP
17
- puts ANOTHER_IMPLICIT_RAKE_DEP
18
- R
19
- expect(out).to eq("YES\nYES")
20
- end
21
-
22
- it "installs gems with a dependency with no type" do
23
- build_repo2
24
-
25
- path = "#{gem_repo2}/#{Gem::MARSHAL_SPEC_DIR}/actionpack-2.3.2.gemspec.rz"
26
- spec = Marshal.load(Gem.inflate(File.read(path)))
27
- spec.dependencies.each do |d|
28
- d.instance_variable_set(:@type, :fail)
29
- end
30
- File.open(path, 'w') do |f|
31
- f.write Gem.deflate(Marshal.dump(spec))
32
- end
33
-
34
- install_gemfile <<-G
35
- source "file://#{gem_repo2}"
36
- gem "actionpack", "2.3.2"
37
- G
38
-
39
- should_be_installed "actionpack 2.3.2", "activesupport 2.3.2"
40
- end
41
-
42
- describe "with crazy rubygem plugin stuff" do
43
- it "installs plugins" do
44
- install_gemfile <<-G
45
- source "file://#{gem_repo1}"
46
- gem "net_b"
47
- G
48
-
49
- should_be_installed "net_b 1.0"
50
- end
51
-
52
- it "installs plugins depended on by other plugins" do
53
- install_gemfile <<-G
54
- source "file://#{gem_repo1}"
55
- gem "net_a"
56
- G
57
-
58
- should_be_installed "net_a 1.0", "net_b 1.0"
59
- end
60
-
61
- it "installs multiple levels of dependencies" do
62
- install_gemfile <<-G
63
- source "file://#{gem_repo1}"
64
- gem "net_c"
65
- gem "net_e"
66
- G
67
-
68
- should_be_installed "net_a 1.0", "net_b 1.0", "net_c 1.0", "net_d 1.0", "net_e 1.0"
69
- end
70
-
71
- context "with ENV['DEBUG_RESOLVER'] set" do
72
- it "produces debug output" do
73
- gemfile <<-G
74
- source "file://#{gem_repo1}"
75
- gem "net_c"
76
- gem "net_e"
77
- G
78
-
79
- resolve_output = capture(:stdout) do
80
- bundle :install, :env => {"DEBUG_RESOLVER" => "1"}
81
- end
82
-
83
- expect(resolve_output).to include("==== Iterating ====")
84
- end
85
- end
86
-
87
- context "with ENV['DEBUG_RESOLVER_TREE'] set" do
88
- it "produces debug output" do
89
- gemfile <<-G
90
- source "file://#{gem_repo1}"
91
- gem "net_c"
92
- gem "net_e"
93
- G
94
-
95
- resolve_output = capture(:stdout) do
96
- bundle :install, :env => {"DEBUG_RESOLVER_TREE" => "1"}
97
- end
98
-
99
- expect(resolve_output).to include(" net_b (>= 0) ruby")
100
- end
101
- end
102
-
103
- end
104
-
105
- describe "when some gems require a different version of ruby" do
106
- it "does not try to install those gems" do
107
- pending "waiting for a rubygems index that includes ruby version"
108
-
109
- update_repo gem_repo1 do
110
- build_gem "require_ruby" do |s|
111
- s.required_ruby_version = "> 9000"
112
- end
113
- end
114
-
115
- install_gemfile <<-G
116
- source "file://#{gem_repo1}"
117
- gem 'require_ruby'
118
- G
119
-
120
- expect(out).to_not include("Gem::InstallError: require_ruby requires Ruby version > 9000")
121
- end
122
- end
123
- end
124
- end