bundler_package_git 1.1.pre.1
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/.rvmrc +1 -0
- data/CHANGELOG.md +659 -0
- data/ISSUES.md +47 -0
- data/LICENSE +23 -0
- data/README.md +29 -0
- data/Rakefile +167 -0
- data/UPGRADING.md +103 -0
- data/bin/bundle +22 -0
- data/bundler.gemspec +30 -0
- data/lib/bundler.rb +283 -0
- data/lib/bundler/capistrano.rb +11 -0
- data/lib/bundler/cli.rb +490 -0
- data/lib/bundler/definition.rb +429 -0
- data/lib/bundler/dependency.rb +130 -0
- data/lib/bundler/deployment.rb +53 -0
- data/lib/bundler/dsl.rb +243 -0
- data/lib/bundler/environment.rb +47 -0
- data/lib/bundler/fetcher.rb +101 -0
- data/lib/bundler/gem_helper.rb +146 -0
- data/lib/bundler/graph.rb +130 -0
- data/lib/bundler/index.rb +131 -0
- data/lib/bundler/installer.rb +117 -0
- data/lib/bundler/lazy_specification.rb +71 -0
- data/lib/bundler/lockfile_parser.rb +108 -0
- data/lib/bundler/remote_specification.rb +57 -0
- data/lib/bundler/resolver.rb +470 -0
- data/lib/bundler/rubygems_ext.rb +226 -0
- data/lib/bundler/runtime.rb +201 -0
- data/lib/bundler/settings.rb +117 -0
- data/lib/bundler/setup.rb +16 -0
- data/lib/bundler/shared_helpers.rb +167 -0
- data/lib/bundler/source.rb +675 -0
- data/lib/bundler/spec_set.rb +134 -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 +2 -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 +7 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +7 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +21 -0
- data/lib/bundler/ui.rb +73 -0
- data/lib/bundler/vendor/net/http/faster.rb +27 -0
- data/lib/bundler/vendor/net/http/persistent.rb +464 -0
- data/lib/bundler/vendor/thor.rb +319 -0
- data/lib/bundler/vendor/thor/actions.rb +297 -0
- data/lib/bundler/vendor/thor/actions/create_file.rb +105 -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 +229 -0
- data/lib/bundler/vendor/thor/actions/inject_into_file.rb +104 -0
- data/lib/bundler/vendor/thor/base.rb +556 -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/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 +174 -0
- data/lib/bundler/vendor/thor/shell.rb +88 -0
- data/lib/bundler/vendor/thor/shell/basic.rb +275 -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 +114 -0
- data/lib/bundler/vendor/thor/util.rb +229 -0
- data/lib/bundler/vendor/thor/version.rb +3 -0
- data/lib/bundler/version.rb +6 -0
- data/lib/bundler/vlad.rb +9 -0
- data/man/bundle-config.ronn +90 -0
- data/man/bundle-exec.ronn +111 -0
- data/man/bundle-install.ronn +314 -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 +279 -0
- data/man/index.txt +6 -0
- data/spec/cache/gems_spec.rb +219 -0
- data/spec/cache/git_spec.rb +9 -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/dependency_api_spec.rb +85 -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 +245 -0
- data/spec/install/gems/packed_spec.rb +84 -0
- data/spec/install/gems/platform_spec.rb +208 -0
- data/spec/install/gems/resolving_spec.rb +72 -0
- data/spec/install/gems/simple_case_spec.rb +715 -0
- data/spec/install/gems/standalone_spec.rb +162 -0
- data/spec/install/gems/sudo_spec.rb +73 -0
- data/spec/install/gems/win32_spec.rb +26 -0
- data/spec/install/gemspec_spec.rb +108 -0
- data/spec/install/git_spec.rb +571 -0
- data/spec/install/invalid_spec.rb +17 -0
- data/spec/install/path_spec.rb +353 -0
- data/spec/install/upgrade_spec.rb +26 -0
- data/spec/lock/git_spec.rb +35 -0
- data/spec/lock/lockfile_spec.rb +683 -0
- data/spec/other/check_spec.rb +221 -0
- data/spec/other/clean_spec.rb +202 -0
- data/spec/other/config_spec.rb +40 -0
- data/spec/other/console_spec.rb +54 -0
- data/spec/other/exec_spec.rb +241 -0
- data/spec/other/ext_spec.rb +16 -0
- data/spec/other/gem_helper_spec.rb +128 -0
- data/spec/other/help_spec.rb +38 -0
- data/spec/other/init_spec.rb +40 -0
- data/spec/other/newgem_spec.rb +24 -0
- data/spec/other/open_spec.rb +35 -0
- data/spec/other/show_spec.rb +82 -0
- data/spec/pack/gems_spec.rb +54 -0
- data/spec/quality_spec.rb +58 -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 +688 -0
- data/spec/runtime/with_clean_env_spec.rb +15 -0
- data/spec/spec_helper.rb +85 -0
- data/spec/support/artifice/endpoint.rb +50 -0
- data/spec/support/artifice/endpoint_fallback.rb +22 -0
- data/spec/support/artifice/endpoint_marshal_fail.rb +11 -0
- data/spec/support/artifice/endpoint_redirect.rb +11 -0
- data/spec/support/builders.rb +574 -0
- data/spec/support/fakeweb/rack-1.0.0.marshal +2 -0
- data/spec/support/fakeweb/windows.rb +23 -0
- data/spec/support/helpers.rb +246 -0
- data/spec/support/indexes.rb +112 -0
- data/spec/support/matchers.rb +89 -0
- data/spec/support/path.rb +73 -0
- data/spec/support/platforms.rb +53 -0
- data/spec/support/ruby_ext.rb +20 -0
- data/spec/support/rubygems_ext.rb +35 -0
- data/spec/support/rubygems_hax/platform.rb +11 -0
- data/spec/support/sudo.rb +21 -0
- data/spec/update/gems_spec.rb +121 -0
- data/spec/update/git_spec.rb +196 -0
- data/spec/update/source_spec.rb +51 -0
- metadata +294 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bundle check" do
|
|
4
|
+
it "returns success when the Gemfile is satisfied" do
|
|
5
|
+
install_gemfile <<-G
|
|
6
|
+
source "file://#{gem_repo1}"
|
|
7
|
+
gem "rails"
|
|
8
|
+
G
|
|
9
|
+
|
|
10
|
+
bundle :check, :exitstatus => true
|
|
11
|
+
check @exitstatus.should == 0
|
|
12
|
+
out.should == "The Gemfile's dependencies are satisfied"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "works with the --gemfile flag when not in the directory" do
|
|
16
|
+
install_gemfile <<-G
|
|
17
|
+
source "file://#{gem_repo1}"
|
|
18
|
+
gem "rails"
|
|
19
|
+
G
|
|
20
|
+
|
|
21
|
+
Dir.chdir tmp
|
|
22
|
+
bundle "check --gemfile bundled_app/Gemfile"
|
|
23
|
+
out.should == "The Gemfile's dependencies are satisfied"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "creates a Gemfile.lock if one did not exist" do
|
|
27
|
+
install_gemfile <<-G
|
|
28
|
+
source "file://#{gem_repo1}"
|
|
29
|
+
gem "rails"
|
|
30
|
+
G
|
|
31
|
+
|
|
32
|
+
FileUtils.rm("Gemfile.lock")
|
|
33
|
+
|
|
34
|
+
bundle "check"
|
|
35
|
+
|
|
36
|
+
bundled_app("Gemfile.lock").should exist
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "prints a generic error if the missing gems are unresolvable" do
|
|
40
|
+
system_gems ["rails-2.3.2"]
|
|
41
|
+
|
|
42
|
+
gemfile <<-G
|
|
43
|
+
source "file://#{gem_repo1}"
|
|
44
|
+
gem "rails"
|
|
45
|
+
G
|
|
46
|
+
|
|
47
|
+
bundle :check
|
|
48
|
+
out.should include("Your Gemfile's dependencies could not be satisfied")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "prints a generic error if a Gemfile.lock does not exist and a toplevel dependency does not exist" do
|
|
52
|
+
gemfile <<-G
|
|
53
|
+
source "file://#{gem_repo1}"
|
|
54
|
+
gem "rails"
|
|
55
|
+
G
|
|
56
|
+
|
|
57
|
+
bundle :check, :exitstatus => true
|
|
58
|
+
check @exitstatus.should > 0
|
|
59
|
+
out.should include("could not be satisfied")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "prints a generic message if you changed your lockfile" do
|
|
63
|
+
install_gemfile <<-G
|
|
64
|
+
source "file://#{gem_repo1}"
|
|
65
|
+
gem 'rails'
|
|
66
|
+
G
|
|
67
|
+
install_gemfile <<-G
|
|
68
|
+
source "file://#{gem_repo1}"
|
|
69
|
+
gem 'rails_fail'
|
|
70
|
+
G
|
|
71
|
+
|
|
72
|
+
gemfile <<-G
|
|
73
|
+
source "file://#{gem_repo1}"
|
|
74
|
+
gem "rails"
|
|
75
|
+
gem "rails_fail"
|
|
76
|
+
G
|
|
77
|
+
|
|
78
|
+
bundle :check
|
|
79
|
+
out.should include("Your Gemfile's dependencies could not be satisfied")
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "remembers --without option from install" do
|
|
83
|
+
gemfile <<-G
|
|
84
|
+
source "file://#{gem_repo1}"
|
|
85
|
+
group :foo do
|
|
86
|
+
gem "rack"
|
|
87
|
+
end
|
|
88
|
+
G
|
|
89
|
+
|
|
90
|
+
bundle "install --without foo"
|
|
91
|
+
bundle "check", :exitstatus => true
|
|
92
|
+
check @exitstatus.should == 0
|
|
93
|
+
out.should include("The Gemfile's dependencies are satisfied")
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it "ensures that gems are actually installed and not just cached" do
|
|
97
|
+
gemfile <<-G
|
|
98
|
+
source "file://#{gem_repo1}"
|
|
99
|
+
gem "rack", :group => :foo
|
|
100
|
+
G
|
|
101
|
+
|
|
102
|
+
bundle "install --without foo"
|
|
103
|
+
|
|
104
|
+
gemfile <<-G
|
|
105
|
+
source "file://#{gem_repo1}"
|
|
106
|
+
gem "rack"
|
|
107
|
+
G
|
|
108
|
+
|
|
109
|
+
bundle "check", :exitstatus => true
|
|
110
|
+
out.should include("* rack (1.0.0)")
|
|
111
|
+
@exitstatus.should == 1
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
it "ignores missing gems restricted to other platforms" do
|
|
115
|
+
system_gems "rack-1.0.0"
|
|
116
|
+
|
|
117
|
+
gemfile <<-G
|
|
118
|
+
source "file://#{gem_repo1}"
|
|
119
|
+
gem "rack"
|
|
120
|
+
platforms :#{not_local_tag} do
|
|
121
|
+
gem "activesupport"
|
|
122
|
+
end
|
|
123
|
+
G
|
|
124
|
+
|
|
125
|
+
lockfile <<-G
|
|
126
|
+
GEM
|
|
127
|
+
remote: file:#{gem_repo1}/
|
|
128
|
+
specs:
|
|
129
|
+
activesupport (2.3.5)
|
|
130
|
+
rack (1.0.0)
|
|
131
|
+
|
|
132
|
+
PLATFORMS
|
|
133
|
+
#{local}
|
|
134
|
+
#{not_local}
|
|
135
|
+
|
|
136
|
+
DEPENDENCIES
|
|
137
|
+
rack
|
|
138
|
+
activesupport
|
|
139
|
+
G
|
|
140
|
+
|
|
141
|
+
bundle :check
|
|
142
|
+
out.should == "The Gemfile's dependencies are satisfied"
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
it "works with env conditionals" do
|
|
146
|
+
system_gems "rack-1.0.0"
|
|
147
|
+
|
|
148
|
+
gemfile <<-G
|
|
149
|
+
source "file://#{gem_repo1}"
|
|
150
|
+
gem "rack"
|
|
151
|
+
env :NOT_GOING_TO_BE_SET do
|
|
152
|
+
gem "activesupport"
|
|
153
|
+
end
|
|
154
|
+
G
|
|
155
|
+
|
|
156
|
+
lockfile <<-G
|
|
157
|
+
GEM
|
|
158
|
+
remote: file:#{gem_repo1}/
|
|
159
|
+
specs:
|
|
160
|
+
activesupport (2.3.5)
|
|
161
|
+
rack (1.0.0)
|
|
162
|
+
|
|
163
|
+
PLATFORMS
|
|
164
|
+
#{local}
|
|
165
|
+
#{not_local}
|
|
166
|
+
|
|
167
|
+
DEPENDENCIES
|
|
168
|
+
rack
|
|
169
|
+
activesupport
|
|
170
|
+
G
|
|
171
|
+
|
|
172
|
+
bundle :check
|
|
173
|
+
out.should == "The Gemfile's dependencies are satisfied"
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
it "outputs an error when the default Gemfile is not found" do
|
|
177
|
+
bundle :check, :exitstatus => true
|
|
178
|
+
check @exitstatus.should == 10
|
|
179
|
+
out.should include("Could not locate Gemfile")
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
it "should not crash when called multiple times on a new machine" do
|
|
183
|
+
gemfile <<-G
|
|
184
|
+
gem 'rails', '3.0.0.beta3'
|
|
185
|
+
gem 'paperclip', :git => 'git://github.com/thoughtbot/paperclip.git'
|
|
186
|
+
G
|
|
187
|
+
|
|
188
|
+
simulate_new_machine
|
|
189
|
+
bundle "check"
|
|
190
|
+
last_out = out
|
|
191
|
+
3.times do |i|
|
|
192
|
+
bundle :check
|
|
193
|
+
check out.should == last_out
|
|
194
|
+
err.should be_empty
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
describe "when locked" do
|
|
199
|
+
before :each do
|
|
200
|
+
system_gems "rack-1.0.0"
|
|
201
|
+
install_gemfile <<-G
|
|
202
|
+
source "file://#{gem_repo1}"
|
|
203
|
+
gem "rack", "1.0"
|
|
204
|
+
G
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
it "returns success when the Gemfile is satisfied" do
|
|
208
|
+
bundle :install
|
|
209
|
+
bundle :check, :exitstatus => true
|
|
210
|
+
check @exitstatus.should == 0
|
|
211
|
+
out.should == "The Gemfile's dependencies are satisfied"
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
it "shows what is missing with the current Gemfile if it is not satisfied" do
|
|
215
|
+
simulate_new_machine
|
|
216
|
+
bundle :check
|
|
217
|
+
out.should match(/The following gems are missing/)
|
|
218
|
+
out.should include("* rack (1.0")
|
|
219
|
+
end
|
|
220
|
+
end
|
|
221
|
+
end
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bundle clean" do
|
|
4
|
+
it "removes unused gems that are different" do
|
|
5
|
+
gemfile = <<-G
|
|
6
|
+
source "file://#{gem_repo1}"
|
|
7
|
+
|
|
8
|
+
gem "thin"
|
|
9
|
+
gem "foo"
|
|
10
|
+
G
|
|
11
|
+
|
|
12
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
13
|
+
|
|
14
|
+
install_gemfile <<-G
|
|
15
|
+
source "file://#{gem_repo1}"
|
|
16
|
+
|
|
17
|
+
gem "thin"
|
|
18
|
+
G
|
|
19
|
+
|
|
20
|
+
bundle :clean
|
|
21
|
+
|
|
22
|
+
out.should == "Removing foo (1.0)"
|
|
23
|
+
|
|
24
|
+
vendored_gems("gems/thin-1.0").should exist
|
|
25
|
+
vendored_gems("gems/rack-1.0.0").should exist
|
|
26
|
+
vendored_gems("gems/foo-1.0").should_not exist
|
|
27
|
+
|
|
28
|
+
vendored_gems("specifications/thin-1.0.gemspec").should exist
|
|
29
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should exist
|
|
30
|
+
vendored_gems("specifications/foo-1.0.gemspec").should_not exist
|
|
31
|
+
|
|
32
|
+
vendored_gems("bin/rackup").should exist
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "removes old version of gem if unused" do
|
|
36
|
+
gemfile = <<-G
|
|
37
|
+
source "file://#{gem_repo1}"
|
|
38
|
+
|
|
39
|
+
gem "rack", "0.9.1"
|
|
40
|
+
gem "foo"
|
|
41
|
+
G
|
|
42
|
+
|
|
43
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
44
|
+
|
|
45
|
+
install_gemfile <<-G
|
|
46
|
+
source "file://#{gem_repo1}"
|
|
47
|
+
|
|
48
|
+
gem "rack", "1.0.0"
|
|
49
|
+
gem "foo"
|
|
50
|
+
G
|
|
51
|
+
|
|
52
|
+
bundle :clean
|
|
53
|
+
|
|
54
|
+
out.should == "Removing rack (0.9.1)"
|
|
55
|
+
|
|
56
|
+
vendored_gems("gems/foo-1.0").should exist
|
|
57
|
+
vendored_gems("gems/rack-1.0.0").should exist
|
|
58
|
+
vendored_gems("gems/rack-0.9.1").should_not exist
|
|
59
|
+
|
|
60
|
+
vendored_gems("specifications/foo-1.0.gemspec").should exist
|
|
61
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should exist
|
|
62
|
+
vendored_gems("specifications/rack-0.9.1.gemspec").should_not exist
|
|
63
|
+
|
|
64
|
+
vendored_gems("bin/rackup").should exist
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "removes new version of gem if unused" do
|
|
68
|
+
gemfile = <<-G
|
|
69
|
+
source "file://#{gem_repo1}"
|
|
70
|
+
|
|
71
|
+
gem "rack", "1.0.0"
|
|
72
|
+
gem "foo"
|
|
73
|
+
G
|
|
74
|
+
|
|
75
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
76
|
+
|
|
77
|
+
install_gemfile <<-G
|
|
78
|
+
source "file://#{gem_repo1}"
|
|
79
|
+
|
|
80
|
+
gem "rack", "0.9.1"
|
|
81
|
+
gem "foo"
|
|
82
|
+
G
|
|
83
|
+
|
|
84
|
+
bundle :clean
|
|
85
|
+
|
|
86
|
+
out.should == "Removing rack (1.0.0)"
|
|
87
|
+
|
|
88
|
+
vendored_gems("gems/foo-1.0").should exist
|
|
89
|
+
vendored_gems("gems/rack-0.9.1").should exist
|
|
90
|
+
vendored_gems("gems/rack-1.0.0").should_not exist
|
|
91
|
+
|
|
92
|
+
vendored_gems("specifications/foo-1.0.gemspec").should exist
|
|
93
|
+
vendored_gems("specifications/rack-0.9.1.gemspec").should exist
|
|
94
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should_not exist
|
|
95
|
+
|
|
96
|
+
vendored_gems("bin/rackup").should exist
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it "remove gems in bundle without groups" do
|
|
100
|
+
gemfile = <<-G
|
|
101
|
+
source "file://#{gem_repo1}"
|
|
102
|
+
|
|
103
|
+
gem "foo"
|
|
104
|
+
|
|
105
|
+
group :test_group do
|
|
106
|
+
gem "rack", "1.0.0"
|
|
107
|
+
end
|
|
108
|
+
G
|
|
109
|
+
|
|
110
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
111
|
+
bundle "install --without test_group"
|
|
112
|
+
bundle :clean
|
|
113
|
+
|
|
114
|
+
out.should == "Removing rack (1.0.0)"
|
|
115
|
+
|
|
116
|
+
vendored_gems("gems/foo-1.0").should exist
|
|
117
|
+
vendored_gems("gems/rack-1.0.0").should_not exist
|
|
118
|
+
|
|
119
|
+
vendored_gems("specifications/foo-1.0.gemspec").should exist
|
|
120
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should_not exist
|
|
121
|
+
|
|
122
|
+
vendored_gems("bin/rackup").should_not exist
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it "removes unused git gems" do
|
|
126
|
+
build_git "foo"
|
|
127
|
+
@revision = revision_for(lib_path("foo-1.0"))
|
|
128
|
+
|
|
129
|
+
gemfile = <<-G
|
|
130
|
+
source "file://#{gem_repo1}"
|
|
131
|
+
|
|
132
|
+
gem "rack", "1.0.0"
|
|
133
|
+
git "#{lib_path('foo-1.0')}", :ref => "#{@revision}" do
|
|
134
|
+
gem "foo"
|
|
135
|
+
end
|
|
136
|
+
G
|
|
137
|
+
|
|
138
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
139
|
+
|
|
140
|
+
install_gemfile <<-G
|
|
141
|
+
source "file://#{gem_repo1}"
|
|
142
|
+
|
|
143
|
+
gem "rack", "1.0.0"
|
|
144
|
+
G
|
|
145
|
+
|
|
146
|
+
bundle :clean
|
|
147
|
+
|
|
148
|
+
out.should == "Removing foo (1.0 #{@revision[0..11]})"
|
|
149
|
+
|
|
150
|
+
vendored_gems("gems/rack-1.0.0").should exist
|
|
151
|
+
vendored_gems("bundler/gems/foo-1.0-#{@revision[0..11]}").should_not exist
|
|
152
|
+
|
|
153
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should exist
|
|
154
|
+
|
|
155
|
+
vendored_gems("bin/rackup").should exist
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
it "removes old git gems" do
|
|
159
|
+
build_git "foo"
|
|
160
|
+
revision = revision_for(lib_path("foo-1.0"))
|
|
161
|
+
|
|
162
|
+
gemfile = <<-G
|
|
163
|
+
source "file://#{gem_repo1}"
|
|
164
|
+
|
|
165
|
+
gem "rack", "1.0.0"
|
|
166
|
+
git "#{lib_path('foo-1.0')}" do
|
|
167
|
+
gem "foo"
|
|
168
|
+
end
|
|
169
|
+
G
|
|
170
|
+
|
|
171
|
+
install_gemfile(gemfile, :path => "vendor/bundle")
|
|
172
|
+
|
|
173
|
+
update_git "foo"
|
|
174
|
+
revision2 = revision_for(lib_path("foo-1.0"))
|
|
175
|
+
|
|
176
|
+
bundle :update
|
|
177
|
+
bundle :install
|
|
178
|
+
bundle :clean
|
|
179
|
+
|
|
180
|
+
out.should == "Removing foo (1.0 #{revision[0..11]})"
|
|
181
|
+
|
|
182
|
+
vendored_gems("gems/rack-1.0.0").should exist
|
|
183
|
+
vendored_gems("bundler/gems/foo-1.0-#{revision[0..11]}").should_not exist
|
|
184
|
+
vendored_gems("bundler/gems/foo-1.0-#{revision2[0..11]}").should exist
|
|
185
|
+
|
|
186
|
+
vendored_gems("specifications/rack-1.0.0.gemspec").should exist
|
|
187
|
+
|
|
188
|
+
vendored_gems("bin/rackup").should exist
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
it "displays an error when used without --path" do
|
|
192
|
+
install_gemfile <<-G
|
|
193
|
+
source "file://#{gem_repo1}"
|
|
194
|
+
|
|
195
|
+
gem "rack", "1.0.0"
|
|
196
|
+
G
|
|
197
|
+
|
|
198
|
+
bundle :clean
|
|
199
|
+
|
|
200
|
+
out.should == "Can only use bundle clean when --path is set"
|
|
201
|
+
end
|
|
202
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe ".bundle/config" do
|
|
4
|
+
before :each do
|
|
5
|
+
gemfile <<-G
|
|
6
|
+
source "file://#{gem_repo1}"
|
|
7
|
+
gem "rack", "1.0.0"
|
|
8
|
+
G
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "can be moved with an environment variable" do
|
|
12
|
+
ENV['BUNDLE_APP_CONFIG'] = tmp('foo/bar').to_s
|
|
13
|
+
bundle "install --path vendor/bundle"
|
|
14
|
+
|
|
15
|
+
bundled_app('.bundle').should_not exist
|
|
16
|
+
tmp('foo/bar/config').should exist
|
|
17
|
+
should_be_installed "rack 1.0.0"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "can provide a relative path with the environment variable" do
|
|
21
|
+
FileUtils.mkdir_p bundled_app('omg')
|
|
22
|
+
Dir.chdir bundled_app('omg')
|
|
23
|
+
|
|
24
|
+
ENV['BUNDLE_APP_CONFIG'] = "../foo"
|
|
25
|
+
bundle "install --path vendor/bundle"
|
|
26
|
+
|
|
27
|
+
bundled_app(".bundle").should_not exist
|
|
28
|
+
bundled_app("../foo/config").should exist
|
|
29
|
+
should_be_installed "rack 1.0.0"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "removes environment.rb from BUNDLE_APP_CONFIG's path" do
|
|
33
|
+
FileUtils.mkdir_p(tmp('foo/bar'))
|
|
34
|
+
ENV['BUNDLE_APP_CONFIG'] = tmp('foo/bar').to_s
|
|
35
|
+
bundle "install"
|
|
36
|
+
FileUtils.touch tmp('foo/bar/environment.rb')
|
|
37
|
+
should_be_installed "rack 1.0.0"
|
|
38
|
+
tmp('foo/bar/environment.rb').should_not exist
|
|
39
|
+
end
|
|
40
|
+
end
|