bundler-maglev- 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +22 -0
- data/.travis.yml +32 -0
- data/CHANGELOG.md +805 -0
- data/ISSUES.md +62 -0
- data/LICENSE +23 -0
- data/README.md +29 -0
- data/Rakefile +212 -0
- data/UPGRADING.md +103 -0
- data/bin/bundle +22 -0
- data/bundler.gemspec +30 -0
- data/lib/bundler.rb +286 -0
- data/lib/bundler/capistrano.rb +11 -0
- data/lib/bundler/cli.rb +520 -0
- data/lib/bundler/definition.rb +438 -0
- data/lib/bundler/dependency.rb +134 -0
- data/lib/bundler/deployment.rb +58 -0
- data/lib/bundler/dsl.rb +257 -0
- data/lib/bundler/environment.rb +47 -0
- data/lib/bundler/gem_helper.rb +151 -0
- data/lib/bundler/gem_installer.rb +9 -0
- data/lib/bundler/gem_tasks.rb +2 -0
- data/lib/bundler/graph.rb +130 -0
- data/lib/bundler/index.rb +138 -0
- data/lib/bundler/installer.rb +97 -0
- data/lib/bundler/lazy_specification.rb +74 -0
- data/lib/bundler/lockfile_parser.rb +108 -0
- data/lib/bundler/remote_specification.rb +59 -0
- data/lib/bundler/resolver.rb +464 -0
- data/lib/bundler/rubygems_ext.rb +237 -0
- data/lib/bundler/rubygems_integration.rb +349 -0
- data/lib/bundler/runtime.rb +152 -0
- data/lib/bundler/settings.rb +115 -0
- data/lib/bundler/setup.rb +23 -0
- data/lib/bundler/shared_helpers.rb +71 -0
- data/lib/bundler/source.rb +708 -0
- data/lib/bundler/spec_set.rb +135 -0
- data/lib/bundler/templates/Executable +16 -0
- data/lib/bundler/templates/Gemfile +4 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +4 -0
- data/lib/bundler/templates/newgem/Rakefile.tt +1 -0
- data/lib/bundler/templates/newgem/bin/newgem.tt +3 -0
- data/lib/bundler/templates/newgem/gitignore.tt +4 -0
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +9 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +7 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +24 -0
- data/lib/bundler/ui.rb +73 -0
- data/lib/bundler/vendor/thor.rb +358 -0
- data/lib/bundler/vendor/thor/actions.rb +314 -0
- data/lib/bundler/vendor/thor/actions/create_file.rb +105 -0
- data/lib/bundler/vendor/thor/actions/create_link.rb +57 -0
- data/lib/bundler/vendor/thor/actions/directory.rb +93 -0
- data/lib/bundler/vendor/thor/actions/empty_directory.rb +134 -0
- data/lib/bundler/vendor/thor/actions/file_manipulation.rb +270 -0
- data/lib/bundler/vendor/thor/actions/inject_into_file.rb +109 -0
- data/lib/bundler/vendor/thor/base.rb +576 -0
- data/lib/bundler/vendor/thor/core_ext/file_binary_read.rb +9 -0
- data/lib/bundler/vendor/thor/core_ext/hash_with_indifferent_access.rb +75 -0
- data/lib/bundler/vendor/thor/core_ext/ordered_hash.rb +100 -0
- data/lib/bundler/vendor/thor/error.rb +30 -0
- data/lib/bundler/vendor/thor/group.rb +273 -0
- data/lib/bundler/vendor/thor/invocation.rb +168 -0
- data/lib/bundler/vendor/thor/parser.rb +4 -0
- data/lib/bundler/vendor/thor/parser/argument.rb +67 -0
- data/lib/bundler/vendor/thor/parser/arguments.rb +161 -0
- data/lib/bundler/vendor/thor/parser/option.rb +120 -0
- data/lib/bundler/vendor/thor/parser/options.rb +175 -0
- data/lib/bundler/vendor/thor/rake_compat.rb +66 -0
- data/lib/bundler/vendor/thor/runner.rb +309 -0
- data/lib/bundler/vendor/thor/shell.rb +88 -0
- data/lib/bundler/vendor/thor/shell/basic.rb +302 -0
- data/lib/bundler/vendor/thor/shell/color.rb +108 -0
- data/lib/bundler/vendor/thor/shell/html.rb +121 -0
- data/lib/bundler/vendor/thor/task.rb +113 -0
- data/lib/bundler/vendor/thor/util.rb +229 -0
- data/lib/bundler/vendor/thor/version.rb +3 -0
- data/lib/bundler/vendored_thor.rb +7 -0
- data/lib/bundler/version.rb +6 -0
- data/lib/bundler/vlad.rb +11 -0
- data/man/bundle-config.ronn +90 -0
- data/man/bundle-exec.ronn +111 -0
- data/man/bundle-install.ronn +317 -0
- data/man/bundle-package.ronn +59 -0
- data/man/bundle-update.ronn +176 -0
- data/man/bundle.ronn +80 -0
- data/man/gemfile.5.ronn +284 -0
- data/man/index.txt +6 -0
- data/spec/bundler/gem_helper_spec.rb +143 -0
- data/spec/cache/gems_spec.rb +230 -0
- data/spec/cache/git_spec.rb +12 -0
- data/spec/cache/path_spec.rb +27 -0
- data/spec/cache/platform_spec.rb +57 -0
- data/spec/install/deploy_spec.rb +197 -0
- data/spec/install/deprecated_spec.rb +37 -0
- data/spec/install/gems/c_ext_spec.rb +48 -0
- data/spec/install/gems/env_spec.rb +107 -0
- data/spec/install/gems/flex_spec.rb +313 -0
- data/spec/install/gems/groups_spec.rb +259 -0
- data/spec/install/gems/packed_spec.rb +84 -0
- data/spec/install/gems/platform_spec.rb +192 -0
- data/spec/install/gems/resolving_spec.rb +72 -0
- data/spec/install/gems/simple_case_spec.rb +770 -0
- data/spec/install/gems/sudo_spec.rb +74 -0
- data/spec/install/gems/win32_spec.rb +26 -0
- data/spec/install/gemspec_spec.rb +125 -0
- data/spec/install/git_spec.rb +570 -0
- data/spec/install/invalid_spec.rb +35 -0
- data/spec/install/path_spec.rb +405 -0
- data/spec/install/upgrade_spec.rb +26 -0
- data/spec/lock/git_spec.rb +35 -0
- data/spec/lock/lockfile_spec.rb +739 -0
- data/spec/other/check_spec.rb +221 -0
- data/spec/other/config_spec.rb +40 -0
- data/spec/other/console_spec.rb +54 -0
- data/spec/other/exec_spec.rb +248 -0
- data/spec/other/ext_spec.rb +37 -0
- data/spec/other/help_spec.rb +39 -0
- data/spec/other/init_spec.rb +40 -0
- data/spec/other/newgem_spec.rb +46 -0
- data/spec/other/open_spec.rb +35 -0
- data/spec/other/show_spec.rb +82 -0
- data/spec/quality_spec.rb +62 -0
- data/spec/resolver/basic_spec.rb +20 -0
- data/spec/resolver/platform_spec.rb +82 -0
- data/spec/runtime/executable_spec.rb +110 -0
- data/spec/runtime/load_spec.rb +107 -0
- data/spec/runtime/platform_spec.rb +90 -0
- data/spec/runtime/require_spec.rb +231 -0
- data/spec/runtime/setup_spec.rb +730 -0
- data/spec/runtime/with_clean_env_spec.rb +15 -0
- data/spec/spec_helper.rb +92 -0
- data/spec/support/builders.rb +597 -0
- data/spec/support/helpers.rb +239 -0
- data/spec/support/indexes.rb +112 -0
- data/spec/support/matchers.rb +77 -0
- data/spec/support/path.rb +71 -0
- data/spec/support/platforms.rb +53 -0
- data/spec/support/ruby_ext.rb +20 -0
- data/spec/support/rubygems_ext.rb +37 -0
- data/spec/support/rubygems_hax/platform.rb +11 -0
- data/spec/support/sudo.rb +21 -0
- data/spec/update/gems_spec.rb +122 -0
- data/spec/update/git_spec.rb +196 -0
- data/spec/update/source_spec.rb +51 -0
- metadata +296 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle install with deprecated features" do
|
4
|
+
before :each do
|
5
|
+
in_app_root
|
6
|
+
end
|
7
|
+
|
8
|
+
it "reports that lib is an invalid option" do
|
9
|
+
gemfile <<-G
|
10
|
+
gem "rack", :lib => "rack"
|
11
|
+
G
|
12
|
+
|
13
|
+
bundle :install
|
14
|
+
out.should =~ /You passed :lib as an option for gem 'rack', but it is invalid/
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "bundle install to a dead symlink" do
|
20
|
+
before do
|
21
|
+
in_app_root do
|
22
|
+
`ln -s /tmp/idontexist bundle`
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "reports the symlink is dead" do
|
27
|
+
gemfile <<-G
|
28
|
+
source "file://#{gem_repo1}"
|
29
|
+
gem "rack"
|
30
|
+
G
|
31
|
+
|
32
|
+
bundle "install --path bundle"
|
33
|
+
out.should =~ /invalid symlink/
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,405 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle install with explicit source paths" do
|
4
|
+
it "fetches gems" do
|
5
|
+
build_lib "foo"
|
6
|
+
|
7
|
+
install_gemfile <<-G
|
8
|
+
path "#{lib_path('foo-1.0')}"
|
9
|
+
gem 'foo'
|
10
|
+
G
|
11
|
+
|
12
|
+
should_be_installed("foo 1.0")
|
13
|
+
end
|
14
|
+
|
15
|
+
it "supports pinned paths" do
|
16
|
+
build_lib "foo"
|
17
|
+
|
18
|
+
install_gemfile <<-G
|
19
|
+
gem 'foo', :path => "#{lib_path('foo-1.0')}"
|
20
|
+
G
|
21
|
+
|
22
|
+
should_be_installed("foo 1.0")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "supports relative paths" do
|
26
|
+
build_lib "foo"
|
27
|
+
|
28
|
+
relative_path = lib_path('foo-1.0').relative_path_from(Pathname.new(Dir.pwd))
|
29
|
+
|
30
|
+
install_gemfile <<-G
|
31
|
+
gem 'foo', :path => "#{relative_path}"
|
32
|
+
G
|
33
|
+
|
34
|
+
should_be_installed("foo 1.0")
|
35
|
+
end
|
36
|
+
|
37
|
+
it "expands paths" do
|
38
|
+
build_lib "foo"
|
39
|
+
|
40
|
+
relative_path = lib_path('foo-1.0').relative_path_from(Pathname.new('~').expand_path)
|
41
|
+
|
42
|
+
install_gemfile <<-G
|
43
|
+
gem 'foo', :path => "~/#{relative_path}"
|
44
|
+
G
|
45
|
+
|
46
|
+
should_be_installed("foo 1.0")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "expands paths relative to Bundler.root" do
|
50
|
+
build_lib "foo", :path => bundled_app("foo-1.0")
|
51
|
+
|
52
|
+
install_gemfile <<-G
|
53
|
+
gem 'foo', :path => "./foo-1.0"
|
54
|
+
G
|
55
|
+
|
56
|
+
bundled_app("subdir").mkpath
|
57
|
+
Dir.chdir(bundled_app("subdir")) do
|
58
|
+
should_be_installed("foo 1.0")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it "expands paths when comparing locked paths to Gemfile paths" do
|
63
|
+
build_lib "foo", :path => bundled_app("foo-1.0")
|
64
|
+
|
65
|
+
install_gemfile <<-G
|
66
|
+
gem 'foo', :path => File.expand_path("../foo-1.0", __FILE__)
|
67
|
+
G
|
68
|
+
|
69
|
+
bundle "install --frozen", :exitstatus => true
|
70
|
+
exitstatus.should == 0
|
71
|
+
end
|
72
|
+
|
73
|
+
it "installs dependencies from the path even if a newer gem is available elsewhere" do
|
74
|
+
system_gems "rack-1.0.0"
|
75
|
+
|
76
|
+
build_lib "rack", "1.0", :path => lib_path('nested/bar') do |s|
|
77
|
+
s.write "lib/rack.rb", "puts 'WIN OVERRIDE'"
|
78
|
+
end
|
79
|
+
|
80
|
+
build_lib "foo", :path => lib_path('nested') do |s|
|
81
|
+
s.add_dependency "rack", "= 1.0"
|
82
|
+
end
|
83
|
+
|
84
|
+
install_gemfile <<-G
|
85
|
+
source "file://#{gem_repo1}"
|
86
|
+
gem "foo", :path => "#{lib_path('nested')}"
|
87
|
+
G
|
88
|
+
|
89
|
+
run "require 'rack'"
|
90
|
+
out.should == 'WIN OVERRIDE'
|
91
|
+
end
|
92
|
+
|
93
|
+
it "works" do
|
94
|
+
build_gem "foo", "1.0.0", :to_system => true do |s|
|
95
|
+
s.write "lib/foo.rb", "puts 'FAIL'"
|
96
|
+
end
|
97
|
+
|
98
|
+
build_lib "omg", "1.0", :path => lib_path("omg") do |s|
|
99
|
+
s.add_dependency "foo"
|
100
|
+
end
|
101
|
+
|
102
|
+
build_lib "foo", "1.0.0", :path => lib_path("omg/foo")
|
103
|
+
|
104
|
+
install_gemfile <<-G
|
105
|
+
gem "omg", :path => "#{lib_path('omg')}"
|
106
|
+
G
|
107
|
+
|
108
|
+
should_be_installed "foo 1.0"
|
109
|
+
end
|
110
|
+
|
111
|
+
it "supports gemspec syntax" do
|
112
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
113
|
+
s.add_dependency "rack", "1.0"
|
114
|
+
end
|
115
|
+
|
116
|
+
gemfile = <<-G
|
117
|
+
source "file://#{gem_repo1}"
|
118
|
+
gemspec
|
119
|
+
G
|
120
|
+
|
121
|
+
File.open(lib_path("foo/Gemfile"), "w") {|f| f.puts gemfile }
|
122
|
+
|
123
|
+
Dir.chdir(lib_path("foo")) do
|
124
|
+
bundle "install"
|
125
|
+
should_be_installed "foo 1.0"
|
126
|
+
should_be_installed "rack 1.0"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
it "supports gemspec syntax with an alternative path" do
|
131
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
132
|
+
s.add_dependency "rack", "1.0"
|
133
|
+
end
|
134
|
+
|
135
|
+
install_gemfile <<-G
|
136
|
+
source "file://#{gem_repo1}"
|
137
|
+
gemspec :path => "#{lib_path("foo")}"
|
138
|
+
G
|
139
|
+
|
140
|
+
should_be_installed "foo 1.0"
|
141
|
+
should_be_installed "rack 1.0"
|
142
|
+
end
|
143
|
+
|
144
|
+
it "doesn't automatically unlock dependencies when using the gemspec syntax" do
|
145
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
146
|
+
s.add_dependency "rack", ">= 1.0"
|
147
|
+
end
|
148
|
+
|
149
|
+
Dir.chdir lib_path("foo")
|
150
|
+
|
151
|
+
install_gemfile lib_path("foo/Gemfile"), <<-G
|
152
|
+
source "file://#{gem_repo1}"
|
153
|
+
gemspec
|
154
|
+
G
|
155
|
+
|
156
|
+
build_gem "rack", "1.0.1", :to_system => true
|
157
|
+
|
158
|
+
bundle "install"
|
159
|
+
|
160
|
+
should_be_installed "foo 1.0"
|
161
|
+
should_be_installed "rack 1.0"
|
162
|
+
end
|
163
|
+
|
164
|
+
it "doesn't automatically unlock dependencies when using the gemspec syntax and the gem has development dependencies" do
|
165
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
166
|
+
s.add_dependency "rack", ">= 1.0"
|
167
|
+
s.add_development_dependency "activesupport"
|
168
|
+
end
|
169
|
+
|
170
|
+
Dir.chdir lib_path("foo")
|
171
|
+
|
172
|
+
install_gemfile lib_path("foo/Gemfile"), <<-G
|
173
|
+
source "file://#{gem_repo1}"
|
174
|
+
gemspec
|
175
|
+
G
|
176
|
+
|
177
|
+
build_gem "rack", "1.0.1", :to_system => true
|
178
|
+
|
179
|
+
bundle "install"
|
180
|
+
|
181
|
+
should_be_installed "foo 1.0"
|
182
|
+
should_be_installed "rack 1.0"
|
183
|
+
end
|
184
|
+
|
185
|
+
it "raises if there are multiple gemspecs" do
|
186
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
187
|
+
s.write "bar.gemspec"
|
188
|
+
end
|
189
|
+
|
190
|
+
install_gemfile <<-G, :exitstatus => true
|
191
|
+
gemspec :path => "#{lib_path("foo")}"
|
192
|
+
G
|
193
|
+
|
194
|
+
exitstatus.should eq(15)
|
195
|
+
out.should =~ /There are multiple gemspecs/
|
196
|
+
end
|
197
|
+
|
198
|
+
it "allows :name to be specified to resolve ambiguity" do
|
199
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
200
|
+
s.write "bar.gemspec"
|
201
|
+
end
|
202
|
+
|
203
|
+
install_gemfile <<-G, :exitstatus => true
|
204
|
+
gemspec :path => "#{lib_path("foo")}", :name => "foo"
|
205
|
+
G
|
206
|
+
|
207
|
+
should_be_installed "foo 1.0"
|
208
|
+
end
|
209
|
+
|
210
|
+
it "sets up executables" do
|
211
|
+
pending_jruby_shebang_fix
|
212
|
+
|
213
|
+
build_lib "foo" do |s|
|
214
|
+
s.executables = "foobar"
|
215
|
+
end
|
216
|
+
|
217
|
+
install_gemfile <<-G
|
218
|
+
path "#{lib_path('foo-1.0')}"
|
219
|
+
gem 'foo'
|
220
|
+
G
|
221
|
+
|
222
|
+
bundle "exec foobar"
|
223
|
+
out.should == "1.0"
|
224
|
+
end
|
225
|
+
|
226
|
+
it "handles directories in bin/" do
|
227
|
+
build_lib "foo"
|
228
|
+
lib_path("foo-1.0").join("foo.gemspec").rmtree
|
229
|
+
lib_path("foo-1.0").join("bin/performance").mkpath
|
230
|
+
|
231
|
+
install_gemfile <<-G
|
232
|
+
gem 'foo', '1.0', :path => "#{lib_path('foo-1.0')}"
|
233
|
+
G
|
234
|
+
err.should == ""
|
235
|
+
end
|
236
|
+
|
237
|
+
it "removes the .gem file after installing" do
|
238
|
+
build_lib "foo"
|
239
|
+
|
240
|
+
install_gemfile <<-G
|
241
|
+
gem 'foo', :path => "#{lib_path('foo-1.0')}"
|
242
|
+
G
|
243
|
+
|
244
|
+
lib_path('foo-1.0').join('foo-1.0.gem').should_not exist
|
245
|
+
end
|
246
|
+
|
247
|
+
describe "block syntax" do
|
248
|
+
it "pulls all gems from a path block" do
|
249
|
+
build_lib "omg"
|
250
|
+
build_lib "hi2u"
|
251
|
+
|
252
|
+
install_gemfile <<-G
|
253
|
+
path "#{lib_path}" do
|
254
|
+
gem "omg"
|
255
|
+
gem "hi2u"
|
256
|
+
end
|
257
|
+
G
|
258
|
+
|
259
|
+
should_be_installed "omg 1.0", "hi2u 1.0"
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
it "keeps source pinning" do
|
264
|
+
build_lib "foo", "1.0", :path => lib_path('foo')
|
265
|
+
build_lib "omg", "1.0", :path => lib_path('omg')
|
266
|
+
build_lib "foo", "1.0", :path => lib_path('omg/foo') do |s|
|
267
|
+
s.write "lib/foo.rb", "puts 'FAIL'"
|
268
|
+
end
|
269
|
+
|
270
|
+
install_gemfile <<-G
|
271
|
+
gem "foo", :path => "#{lib_path('foo')}"
|
272
|
+
gem "omg", :path => "#{lib_path('omg')}"
|
273
|
+
G
|
274
|
+
|
275
|
+
should_be_installed "foo 1.0"
|
276
|
+
end
|
277
|
+
|
278
|
+
it "works when the path does not have a gemspec" do
|
279
|
+
build_lib "foo", :gemspec => false
|
280
|
+
|
281
|
+
gemfile <<-G
|
282
|
+
gem "foo", "1.0", :path => "#{lib_path('foo-1.0')}"
|
283
|
+
G
|
284
|
+
|
285
|
+
should_be_installed "foo 1.0"
|
286
|
+
|
287
|
+
should_be_installed "foo 1.0"
|
288
|
+
end
|
289
|
+
|
290
|
+
it "installs executable stubs" do
|
291
|
+
build_lib "foo" do |s|
|
292
|
+
s.executables = ['foo']
|
293
|
+
end
|
294
|
+
|
295
|
+
install_gemfile <<-G
|
296
|
+
gem "foo", :path => "#{lib_path('foo-1.0')}"
|
297
|
+
G
|
298
|
+
|
299
|
+
bundle "exec foo"
|
300
|
+
out.should == "1.0"
|
301
|
+
end
|
302
|
+
|
303
|
+
describe "when the gem version in the path is updated" do
|
304
|
+
before :each do
|
305
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
306
|
+
s.add_dependency "bar"
|
307
|
+
end
|
308
|
+
build_lib "bar", "1.0", :path => lib_path("foo/bar")
|
309
|
+
|
310
|
+
install_gemfile <<-G
|
311
|
+
gem "foo", :path => "#{lib_path('foo')}"
|
312
|
+
G
|
313
|
+
end
|
314
|
+
|
315
|
+
it "unlocks all gems when the top level gem is updated" do
|
316
|
+
build_lib "foo", "2.0", :path => lib_path("foo") do |s|
|
317
|
+
s.add_dependency "bar"
|
318
|
+
end
|
319
|
+
|
320
|
+
bundle "install"
|
321
|
+
|
322
|
+
should_be_installed "foo 2.0", "bar 1.0"
|
323
|
+
end
|
324
|
+
|
325
|
+
it "unlocks all gems when a child dependency gem is updated" do
|
326
|
+
build_lib "bar", "2.0", :path => lib_path("foo/bar")
|
327
|
+
|
328
|
+
bundle "install"
|
329
|
+
|
330
|
+
should_be_installed "foo 1.0", "bar 2.0"
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
describe "when dependencies in the path are updated" do
|
335
|
+
before :each do
|
336
|
+
build_lib "foo", "1.0", :path => lib_path("foo")
|
337
|
+
|
338
|
+
install_gemfile <<-G
|
339
|
+
source "file://#{gem_repo1}"
|
340
|
+
gem "foo", :path => "#{lib_path('foo')}"
|
341
|
+
G
|
342
|
+
end
|
343
|
+
|
344
|
+
it "gets dependencies that are updated in the path" do
|
345
|
+
build_lib "foo", "1.0", :path => lib_path("foo") do |s|
|
346
|
+
s.add_dependency "rack"
|
347
|
+
end
|
348
|
+
|
349
|
+
bundle "install"
|
350
|
+
|
351
|
+
should_be_installed "rack 1.0.0"
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
describe "switching sources" do
|
356
|
+
it "doesn't switch pinned git sources to rubygems when pinning the parent gem to a path source" do
|
357
|
+
build_gem "foo", "1.0", :to_system => true do |s|
|
358
|
+
s.write "lib/foo.rb", "raise 'fail'"
|
359
|
+
end
|
360
|
+
build_lib "foo", "1.0", :path => lib_path('bar/foo')
|
361
|
+
build_git "bar", "1.0", :path => lib_path('bar') do |s|
|
362
|
+
s.add_dependency 'foo'
|
363
|
+
end
|
364
|
+
|
365
|
+
install_gemfile <<-G
|
366
|
+
source "file://#{gem_repo1}"
|
367
|
+
gem "bar", :git => "#{lib_path('bar')}"
|
368
|
+
G
|
369
|
+
|
370
|
+
install_gemfile <<-G
|
371
|
+
source "file://#{gem_repo1}"
|
372
|
+
gem "bar", :path => "#{lib_path('bar')}"
|
373
|
+
G
|
374
|
+
|
375
|
+
should_be_installed "foo 1.0", "bar 1.0"
|
376
|
+
end
|
377
|
+
|
378
|
+
it "switches the source when the gem existed in rubygems and the path was already being used for another gem" do
|
379
|
+
build_lib "foo", "1.0", :path => lib_path("foo")
|
380
|
+
build_gem "bar", "1.0", :to_system => true do |s|
|
381
|
+
s.write "lib/bar.rb", "raise 'fail'"
|
382
|
+
end
|
383
|
+
|
384
|
+
install_gemfile <<-G
|
385
|
+
source "file://#{gem_repo1}"
|
386
|
+
gem "bar"
|
387
|
+
path "#{lib_path('foo')}" do
|
388
|
+
gem "foo"
|
389
|
+
end
|
390
|
+
G
|
391
|
+
|
392
|
+
build_lib "bar", "1.0", :path => lib_path("foo/bar")
|
393
|
+
|
394
|
+
install_gemfile <<-G
|
395
|
+
source "file://#{gem_repo1}"
|
396
|
+
path "#{lib_path('foo')}" do
|
397
|
+
gem "foo"
|
398
|
+
gem "bar"
|
399
|
+
end
|
400
|
+
G
|
401
|
+
|
402
|
+
should_be_installed "bar 1.0"
|
403
|
+
end
|
404
|
+
end
|
405
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle install for the first time with v1.0" do
|
4
|
+
before :each do
|
5
|
+
in_app_root
|
6
|
+
|
7
|
+
gemfile <<-G
|
8
|
+
source "file://#{gem_repo1}"
|
9
|
+
gem "rack"
|
10
|
+
G
|
11
|
+
end
|
12
|
+
|
13
|
+
it "removes lockfiles in 0.9 YAML format" do
|
14
|
+
File.open("Gemfile.lock", "w"){|f| YAML.dump({}, f) }
|
15
|
+
bundle :install
|
16
|
+
File.read("Gemfile.lock").should_not =~ /^---/
|
17
|
+
end
|
18
|
+
|
19
|
+
it "removes env.rb if it exists" do
|
20
|
+
bundled_app.join(".bundle").mkdir
|
21
|
+
bundled_app.join(".bundle/environment.rb").open("w"){|f| f.write("raise 'nooo'") }
|
22
|
+
bundle :install
|
23
|
+
bundled_app.join(".bundle/environment.rb").should_not exist
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|