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,107 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle install with ENV conditionals" do
4
- describe "when just setting an ENV key as a string" do
5
- before :each do
6
- gemfile <<-G
7
- source "file://#{gem_repo1}"
8
-
9
- env "BUNDLER_TEST" do
10
- gem "rack"
11
- end
12
- G
13
- end
14
-
15
- it "excludes the gems when the ENV variable is not set" do
16
- bundle :install
17
- should_not_be_installed "rack"
18
- end
19
-
20
- it "includes the gems when the ENV variable is set" do
21
- ENV['BUNDLER_TEST'] = '1'
22
- bundle :install
23
- should_be_installed "rack 1.0"
24
- end
25
- end
26
-
27
- describe "when just setting an ENV key as a symbol" do
28
- before :each do
29
- gemfile <<-G
30
- source "file://#{gem_repo1}"
31
-
32
- env :BUNDLER_TEST do
33
- gem "rack"
34
- end
35
- G
36
- end
37
-
38
- it "excludes the gems when the ENV variable is not set" do
39
- bundle :install
40
- should_not_be_installed "rack"
41
- end
42
-
43
- it "includes the gems when the ENV variable is set" do
44
- ENV['BUNDLER_TEST'] = '1'
45
- bundle :install
46
- should_be_installed "rack 1.0"
47
- end
48
- end
49
-
50
- describe "when setting a string to match the env" do
51
- before :each do
52
- gemfile <<-G
53
- source "file://#{gem_repo1}"
54
-
55
- env "BUNDLER_TEST" => "foo" do
56
- gem "rack"
57
- end
58
- G
59
- end
60
-
61
- it "excludes the gems when the ENV variable is not set" do
62
- bundle :install
63
- should_not_be_installed "rack"
64
- end
65
-
66
- it "excludes the gems when the ENV variable is set but does not match the condition" do
67
- ENV['BUNDLER_TEST'] = '1'
68
- bundle :install
69
- should_not_be_installed "rack"
70
- end
71
-
72
- it "includes the gems when the ENV variable is set and matches the condition" do
73
- ENV['BUNDLER_TEST'] = 'foo'
74
- bundle :install
75
- should_be_installed "rack 1.0"
76
- end
77
- end
78
-
79
- describe "when setting a regex to match the env" do
80
- before :each do
81
- gemfile <<-G
82
- source "file://#{gem_repo1}"
83
-
84
- env "BUNDLER_TEST" => /foo/ do
85
- gem "rack"
86
- end
87
- G
88
- end
89
-
90
- it "excludes the gems when the ENV variable is not set" do
91
- bundle :install
92
- should_not_be_installed "rack"
93
- end
94
-
95
- it "excludes the gems when the ENV variable is set but does not match the condition" do
96
- ENV['BUNDLER_TEST'] = 'fo'
97
- bundle :install
98
- should_not_be_installed "rack"
99
- end
100
-
101
- it "includes the gems when the ENV variable is set and matches the condition" do
102
- ENV['BUNDLER_TEST'] = 'foobar'
103
- bundle :install
104
- should_be_installed "rack 1.0"
105
- end
106
- end
107
- end
@@ -1,314 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle flex_install" do
4
- it "installs the gems as expected" do
5
- install_gemfile <<-G
6
- source "file://#{gem_repo1}"
7
- gem 'rack'
8
- G
9
-
10
- should_be_installed "rack 1.0.0"
11
- should_be_locked
12
- end
13
-
14
- it "installs even when the lockfile is invalid" do
15
- install_gemfile <<-G
16
- source "file://#{gem_repo1}"
17
- gem 'rack'
18
- G
19
-
20
- should_be_installed "rack 1.0.0"
21
- should_be_locked
22
-
23
- gemfile <<-G
24
- source "file://#{gem_repo1}"
25
- gem 'rack', '1.0'
26
- G
27
-
28
- bundle :install
29
- should_be_installed "rack 1.0.0"
30
- should_be_locked
31
- end
32
-
33
- it "keeps child dependencies at the same version" do
34
- build_repo2
35
-
36
- install_gemfile <<-G
37
- source "file://#{gem_repo2}"
38
- gem "rack-obama"
39
- G
40
-
41
- should_be_installed "rack 1.0.0", "rack-obama 1.0.0"
42
-
43
- update_repo2
44
- install_gemfile <<-G
45
- source "file://#{gem_repo2}"
46
- gem "rack-obama", "1.0"
47
- G
48
-
49
- should_be_installed "rack 1.0.0", "rack-obama 1.0.0"
50
- end
51
-
52
- describe "adding new gems" do
53
- it "installs added gems without updating previously installed gems" do
54
- build_repo2
55
-
56
- install_gemfile <<-G
57
- source "file://#{gem_repo2}"
58
- gem 'rack'
59
- G
60
-
61
- update_repo2
62
-
63
- install_gemfile <<-G
64
- source "file://#{gem_repo2}"
65
- gem 'rack'
66
- gem 'activesupport', '2.3.5'
67
- G
68
-
69
- should_be_installed "rack 1.0.0", 'activesupport 2.3.5'
70
- end
71
-
72
- it "keeps child dependencies pinned" do
73
- build_repo2
74
-
75
- install_gemfile <<-G
76
- source "file://#{gem_repo2}"
77
- gem "rack-obama"
78
- G
79
-
80
- update_repo2
81
-
82
- install_gemfile <<-G
83
- source "file://#{gem_repo2}"
84
- gem "rack-obama"
85
- gem "thin"
86
- G
87
-
88
- should_be_installed "rack 1.0.0", 'rack-obama 1.0', 'thin 1.0'
89
- end
90
- end
91
-
92
- describe "removing gems" do
93
- it "removes gems without changing the versions of remaining gems" do
94
- build_repo2
95
- install_gemfile <<-G
96
- source "file://#{gem_repo2}"
97
- gem 'rack'
98
- gem 'activesupport', '2.3.5'
99
- G
100
-
101
- update_repo2
102
-
103
- install_gemfile <<-G
104
- source "file://#{gem_repo2}"
105
- gem 'rack'
106
- G
107
-
108
- should_be_installed "rack 1.0.0"
109
- should_not_be_installed "activesupport 2.3.5"
110
-
111
- install_gemfile <<-G
112
- source "file://#{gem_repo2}"
113
- gem 'rack'
114
- gem 'activesupport', '2.3.2'
115
- G
116
-
117
- should_be_installed "rack 1.0.0", 'activesupport 2.3.2'
118
- end
119
-
120
- it "removes top level dependencies when removed from the Gemfile while leaving other dependencies intact" do
121
- build_repo2
122
- install_gemfile <<-G
123
- source "file://#{gem_repo2}"
124
- gem 'rack'
125
- gem 'activesupport', '2.3.5'
126
- G
127
-
128
- update_repo2
129
-
130
- install_gemfile <<-G
131
- source "file://#{gem_repo2}"
132
- gem 'rack'
133
- G
134
-
135
- should_not_be_installed "activesupport 2.3.5"
136
- end
137
-
138
- it "removes child dependencies" do
139
- build_repo2
140
- install_gemfile <<-G
141
- source "file://#{gem_repo2}"
142
- gem 'rack-obama'
143
- gem 'activesupport'
144
- G
145
-
146
- should_be_installed "rack 1.0.0", "rack-obama 1.0.0", "activesupport 2.3.5"
147
-
148
- update_repo2
149
- install_gemfile <<-G
150
- source "file://#{gem_repo2}"
151
- gem 'activesupport'
152
- G
153
-
154
- should_be_installed 'activesupport 2.3.5'
155
- should_not_be_installed "rack-obama", "rack"
156
- end
157
- end
158
-
159
- describe "when Gemfile conflicts with lockfile" do
160
- before(:each) do
161
- build_repo2
162
- install_gemfile <<-G
163
- source "file://#{gem_repo2}"
164
- gem "rack_middleware"
165
- G
166
-
167
- should_be_installed "rack_middleware 1.0", "rack 0.9.1"
168
-
169
- build_repo2
170
- update_repo2 do
171
- build_gem "rack-obama", "2.0" do |s|
172
- s.add_dependency "rack", "=1.2"
173
- end
174
- build_gem "rack_middleware", "2.0" do |s|
175
- s.add_dependency "rack", ">=1.0"
176
- end
177
- end
178
-
179
- gemfile <<-G
180
- source "file://#{gem_repo2}"
181
- gem "rack-obama", "2.0"
182
- gem "rack_middleware"
183
- G
184
- end
185
-
186
- it "does not install gems whose dependencies are not met" do
187
- bundle :install
188
- ruby <<-RUBY, :expect_err => true
189
- require 'bundler/setup'
190
- RUBY
191
- expect(err).to match(/could not find gem 'rack-obama/i)
192
- end
193
-
194
- it "suggests bundle update when the Gemfile requires different versions than the lock" do
195
- nice_error = <<-E.strip.gsub(/^ {8}/, '')
196
- Fetching source index from file:#{gem_repo2}/
197
- Resolving dependencies...
198
- Bundler could not find compatible versions for gem "rack":
199
- In snapshot (Gemfile.lock):
200
- rack (0.9.1)
201
-
202
- In Gemfile:
203
- rack-obama (= 2.0) ruby depends on
204
- rack (= 1.2) ruby
205
-
206
- Running `bundle update` will rebuild your snapshot from scratch, using only
207
- the gems in your Gemfile, which may resolve the conflict.
208
- E
209
-
210
- bundle :install, :retry => 0
211
- expect(out).to eq(nice_error)
212
- end
213
- end
214
-
215
- describe "subtler cases" do
216
- before :each do
217
- install_gemfile <<-G
218
- source "file://#{gem_repo1}"
219
- gem "rack"
220
- gem "rack-obama"
221
- G
222
-
223
- gemfile <<-G
224
- source "file://#{gem_repo1}"
225
- gem "rack", "0.9.1"
226
- gem "rack-obama"
227
- G
228
- end
229
-
230
- it "does something" do
231
- expect {
232
- bundle "install"
233
- }.not_to change { File.read(bundled_app('Gemfile.lock')) }
234
-
235
- expect(out).to include('rack = 0.9.1')
236
- expect(out).to include('locked at 1.0.0')
237
- expect(out).to include('bundle update rack')
238
- end
239
-
240
- it "should work when you update" do
241
- bundle "update rack"
242
- end
243
- end
244
-
245
- describe "when adding a new source" do
246
- it "updates the lockfile" do
247
- build_repo2
248
- install_gemfile <<-G
249
- source "file://#{gem_repo1}"
250
- gem "rack"
251
- G
252
- install_gemfile <<-G
253
- source "file://#{gem_repo1}"
254
- source "file://#{gem_repo2}"
255
- gem "rack"
256
- G
257
-
258
- lockfile_should_be <<-L
259
- GEM
260
- remote: file:#{gem_repo1}/
261
- remote: file:#{gem_repo2}/
262
- specs:
263
- rack (1.0.0)
264
-
265
- PLATFORMS
266
- ruby
267
-
268
- DEPENDENCIES
269
- rack
270
- L
271
- end
272
- end
273
-
274
- # This was written to test github issue #636, but it passed.
275
- # It's insanoly slow (3.36s) so I'm not going to run it
276
- # describe "when a locked child dependency conflicts" do
277
- # before(:each) do
278
- # build_repo2 do
279
- # build_gem "capybara", "0.3.9" do |s|
280
- # s.add_dependency "rack", ">= 1.0.0"
281
- # end
282
- #
283
- # build_gem "rack", "1.1.0"
284
- # build_gem "rails", "3.0.0.rc4" do |s|
285
- # s.add_dependency "rack", "~> 1.1.0"
286
- # end
287
- #
288
- # build_gem "rack", "1.2.1"
289
- # build_gem "rails", "3.0.0" do |s|
290
- # s.add_dependency "rack", "~> 1.2.1"
291
- # end
292
- # end
293
- # end
294
- #
295
- # it "prints the correct error message" do
296
- # # install Rails 3.0.0.rc
297
- # install_gemfile <<-G
298
- # source "file://#{gem_repo2}"
299
- # gem "rails", "3.0.0.rc4"
300
- # gem "capybara", "0.3.9"
301
- # G
302
- #
303
- # # upgrade Rails to 3.0.0 and then install again
304
- # install_gemfile <<-G
305
- # source "file://#{gem_repo2}"
306
- # gem "rails", "3.0.0"
307
- # gem "capybara", "0.3.9"
308
- # G
309
- #
310
- # out.should match(/Gemfile.lock/)
311
- # end
312
- # end
313
-
314
- end
@@ -1,308 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "bundle install with groups" do
4
-
5
- describe "installing with no options" do
6
- before :each do
7
- install_gemfile <<-G
8
- source "file://#{gem_repo1}"
9
- gem "rack"
10
- group :emo do
11
- gem "activesupport", "2.3.5"
12
- end
13
- gem "thin", :groups => [:emo]
14
- G
15
- end
16
-
17
- it "installs gems in the default group" do
18
- should_be_installed "rack 1.0.0"
19
- end
20
-
21
- it "installs gems in a group block into that group" do
22
- should_be_installed "activesupport 2.3.5"
23
-
24
- load_error_run <<-R, 'activesupport', :default
25
- require 'activesupport'
26
- puts ACTIVESUPPORT
27
- R
28
-
29
- expect(err).to eq("ZOMG LOAD ERROR")
30
- end
31
-
32
- it "installs gems with inline :groups into those groups" do
33
- should_be_installed "thin 1.0"
34
-
35
- load_error_run <<-R, 'thin', :default
36
- require 'thin'
37
- puts THIN
38
- R
39
-
40
- expect(err).to eq("ZOMG LOAD ERROR")
41
- end
42
-
43
- it "sets up everything if Bundler.setup is used with no groups" do
44
- out = run("require 'rack'; puts RACK")
45
- expect(out).to eq('1.0.0')
46
-
47
- out = run("require 'activesupport'; puts ACTIVESUPPORT")
48
- expect(out).to eq('2.3.5')
49
-
50
- out = run("require 'thin'; puts THIN")
51
- expect(out).to eq('1.0')
52
- end
53
-
54
- it "removes old groups when new groups are set up" do
55
- load_error_run <<-RUBY, 'thin', :emo
56
- Bundler.setup(:default)
57
- require 'thin'
58
- puts THIN
59
- RUBY
60
-
61
- expect(err).to eq("ZOMG LOAD ERROR")
62
- end
63
-
64
- it "sets up old groups when they have previously been removed" do
65
- out = run <<-RUBY, :emo
66
- Bundler.setup(:default)
67
- Bundler.setup(:default, :emo)
68
- require 'thin'; puts THIN
69
- RUBY
70
- expect(out).to eq('1.0')
71
- end
72
- end
73
-
74
- describe "installing --without" do
75
- describe "with gems assigned to a single group" do
76
- before :each do
77
- gemfile <<-G
78
- source "file://#{gem_repo1}"
79
- gem "rack"
80
- group :emo do
81
- gem "activesupport", "2.3.5"
82
- end
83
- G
84
- end
85
-
86
- it "installs gems in the default group" do
87
- bundle :install, :without => "emo"
88
- should_be_installed "rack 1.0.0", :groups => [:default]
89
- end
90
-
91
- it "does not install gems from the excluded group" do
92
- bundle :install, :without => "emo"
93
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
94
- end
95
-
96
- it "does not install gems from the previously excluded group" do
97
- bundle :install, :without => "emo"
98
- should_not_be_installed "activesupport 2.3.5"
99
- bundle :install
100
- should_not_be_installed "activesupport 2.3.5"
101
- end
102
-
103
- it "does not say it installed gems from the excluded group" do
104
- bundle :install, :without => "emo"
105
- expect(out).not_to include("activesupport")
106
- end
107
-
108
- it "allows Bundler.setup for specific groups" do
109
- bundle :install, :without => "emo"
110
- run("require 'rack'; puts RACK", :default)
111
- expect(out).to eq('1.0.0')
112
- end
113
-
114
- it "does not effect the resolve" do
115
- gemfile <<-G
116
- source "file://#{gem_repo1}"
117
- gem "activesupport"
118
- group :emo do
119
- gem "rails", "2.3.2"
120
- end
121
- G
122
-
123
- bundle :install, :without => "emo"
124
- should_be_installed "activesupport 2.3.2", :groups => [:default]
125
- end
126
-
127
- it "still works on a different machine and excludes gems" do
128
- bundle :install, :without => "emo"
129
-
130
- simulate_new_machine
131
- bundle :install, :without => "emo"
132
-
133
- should_be_installed "rack 1.0.0", :groups => [:default]
134
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
135
- end
136
-
137
- it "still works when BUNDLE_WITHOUT is set" do
138
- ENV["BUNDLE_WITHOUT"] = "emo"
139
-
140
- bundle :install
141
- expect(out).not_to include("activesupport")
142
-
143
- should_be_installed "rack 1.0.0", :groups => [:default]
144
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
145
-
146
- ENV["BUNDLE_WITHOUT"] = nil
147
- end
148
-
149
- it "clears without when passed an empty list" do
150
- bundle :install, :without => "emo"
151
-
152
- bundle 'install --without ""'
153
- should_be_installed "activesupport 2.3.5"
154
- end
155
-
156
- it "doesn't clear without when nothing is passed" do
157
- bundle :install, :without => "emo"
158
-
159
- bundle :install
160
- should_not_be_installed "activesupport 2.3.5"
161
- end
162
- end
163
-
164
- describe "with gems assigned to multiple groups" do
165
- before :each do
166
- gemfile <<-G
167
- source "file://#{gem_repo1}"
168
- gem "rack"
169
- group :emo, :lolercoaster do
170
- gem "activesupport", "2.3.5"
171
- end
172
- G
173
- end
174
-
175
- it "installs gems in the default group" do
176
- bundle :install, :without => "emo lolercoaster"
177
- should_be_installed "rack 1.0.0"
178
- end
179
-
180
- it "installs the gem if any of its groups are installed" do
181
- bundle "install --without emo"
182
- should_be_installed "rack 1.0.0", "activesupport 2.3.5"
183
- end
184
-
185
- describe "with a gem defined multiple times in different groups" do
186
- before :each do
187
- gemfile <<-G
188
- source "file://#{gem_repo1}"
189
- gem "rack"
190
-
191
- group :emo do
192
- gem "activesupport", "2.3.5"
193
- end
194
-
195
- group :lolercoaster do
196
- gem "activesupport", "2.3.5"
197
- end
198
- G
199
- end
200
-
201
- it "installs the gem w/ option --without emo" do
202
- bundle "install --without emo"
203
- should_be_installed "activesupport 2.3.5"
204
- end
205
-
206
- it "installs the gem w/ option --without lolercoaster" do
207
- bundle "install --without lolercoaster"
208
- should_be_installed "activesupport 2.3.5"
209
- end
210
-
211
- it "does not install the gem w/ option --without emo lolercoaster" do
212
- bundle "install --without emo lolercoaster"
213
- should_not_be_installed "activesupport 2.3.5"
214
- end
215
-
216
- it "does not install the gem w/ option --without 'emo lolercoaster'" do
217
- bundle "install --without 'emo lolercoaster'"
218
- should_not_be_installed "activesupport 2.3.5"
219
- end
220
- end
221
- end
222
-
223
- describe "nesting groups" do
224
- before :each do
225
- gemfile <<-G
226
- source "file://#{gem_repo1}"
227
- gem "rack"
228
- group :emo do
229
- group :lolercoaster do
230
- gem "activesupport", "2.3.5"
231
- end
232
- end
233
- G
234
- end
235
-
236
- it "installs gems in the default group" do
237
- bundle :install, :without => "emo lolercoaster"
238
- should_be_installed "rack 1.0.0"
239
- end
240
-
241
- it "installs the gem if any of its groups are installed" do
242
- bundle "install --without emo"
243
- should_be_installed "rack 1.0.0", "activesupport 2.3.5"
244
- end
245
-
246
- end
247
- end
248
-
249
- describe "when loading only the default group" do
250
- it "should not load all groups" do
251
- install_gemfile <<-G
252
- source "file://#{gem_repo1}"
253
- gem "rack"
254
- gem "activesupport", :groups => :development
255
- G
256
-
257
- ruby <<-R
258
- require "bundler"
259
- Bundler.setup :default
260
- Bundler.require :default
261
- puts RACK
262
- begin
263
- require "activesupport"
264
- rescue LoadError
265
- puts "no activesupport"
266
- end
267
- R
268
-
269
- expect(out).to include("1.0")
270
- expect(out).to include("no activesupport")
271
- end
272
- end
273
-
274
-
275
- describe "when locked and installed with --without" do
276
- before(:each) do
277
- build_repo2
278
- system_gems "rack-0.9.1" do
279
- install_gemfile <<-G, :without => :rack
280
- source "file://#{gem_repo2}"
281
- gem "rack"
282
-
283
- group :rack do
284
- gem "rack_middleware"
285
- end
286
- G
287
- end
288
- end
289
-
290
- it "uses the correct versions even if --without was used on the original" do
291
- should_be_installed "rack 0.9.1"
292
- should_not_be_installed "rack_middleware 1.0"
293
- simulate_new_machine
294
-
295
- bundle :install
296
-
297
- should_be_installed "rack 0.9.1"
298
- should_be_installed "rack_middleware 1.0"
299
- end
300
-
301
- it "does not hit the remote a second time" do
302
- FileUtils.rm_rf gem_repo2
303
- bundle "install --without rack"
304
- expect(err).to be_empty
305
- end
306
- end
307
-
308
- end