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
data/man/index.txt
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'bundler/gem_helper'
|
3
|
+
|
4
|
+
describe "Bundler::GemHelper tasks" do
|
5
|
+
context "determining gemspec" do
|
6
|
+
it "interpolates the name when there is only one gemspec" do
|
7
|
+
bundle 'gem test'
|
8
|
+
app = bundled_app("test")
|
9
|
+
helper = Bundler::GemHelper.new(app.to_s)
|
10
|
+
helper.gemspec.name.should == 'test'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "interpolates the name for a hidden gemspec" do
|
14
|
+
bundle 'gem test'
|
15
|
+
app = bundled_app("test")
|
16
|
+
FileUtils.mv app.join('test.gemspec'), app.join('.gemspec')
|
17
|
+
helper = Bundler::GemHelper.new(app.to_s)
|
18
|
+
helper.gemspec.name.should == 'test'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should fail when there is no gemspec" do
|
22
|
+
bundle 'gem test'
|
23
|
+
app = bundled_app("test")
|
24
|
+
FileUtils.rm(File.join(app.to_s, 'test.gemspec'))
|
25
|
+
proc { Bundler::GemHelper.new(app.to_s) }.should raise_error(/Unable to determine name/)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should fail when there are two gemspecs and the name isn't specified" do
|
29
|
+
bundle 'gem test'
|
30
|
+
app = bundled_app("test")
|
31
|
+
File.open(File.join(app.to_s, 'test2.gemspec'), 'w') {|f| f << ''}
|
32
|
+
proc { Bundler::GemHelper.new(app.to_s) }.should raise_error(/Unable to determine name/)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "handles namespaces and converting to CamelCase" do
|
36
|
+
bundle 'gem test-foo_bar'
|
37
|
+
lib = bundled_app('test-foo_bar').join('lib/test-foo_bar.rb').read
|
38
|
+
lib.should include("module Test")
|
39
|
+
lib.should include("module FooBar")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "gem management" do
|
44
|
+
def mock_confirm_message(message)
|
45
|
+
Bundler.ui.should_receive(:confirm).with(message)
|
46
|
+
end
|
47
|
+
|
48
|
+
def mock_build_message
|
49
|
+
mock_confirm_message "test 0.0.1 built to pkg/test-0.0.1.gem"
|
50
|
+
end
|
51
|
+
|
52
|
+
before(:each) do
|
53
|
+
bundle 'gem test'
|
54
|
+
@app = bundled_app("test")
|
55
|
+
@gemspec = File.read("#{@app.to_s}/test.gemspec")
|
56
|
+
File.open("#{@app.to_s}/test.gemspec", 'w'){|f| f << @gemspec.gsub('TODO: ', '') }
|
57
|
+
@helper = Bundler::GemHelper.new(@app.to_s)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "uses a shell UI for output" do
|
61
|
+
Bundler.ui.should be_a(Bundler::UI::Shell)
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'build' do
|
65
|
+
it "builds" do
|
66
|
+
mock_build_message
|
67
|
+
@helper.build_gem
|
68
|
+
bundled_app('test/pkg/test-0.0.1.gem').should exist
|
69
|
+
end
|
70
|
+
|
71
|
+
it "raises an appropriate error when the build fails" do
|
72
|
+
# break the gemspec by adding back the TODOs...
|
73
|
+
File.open("#{@app.to_s}/test.gemspec", 'w'){|f| f << @gemspec }
|
74
|
+
proc { @helper.build_gem }.should raise_error(/TODO/)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe 'install' do
|
79
|
+
it "installs" do
|
80
|
+
mock_build_message
|
81
|
+
mock_confirm_message "test (0.0.1) installed"
|
82
|
+
@helper.install_gem
|
83
|
+
bundled_app('test/pkg/test-0.0.1.gem').should exist
|
84
|
+
%x{gem list}.should include("test (0.0.1)")
|
85
|
+
end
|
86
|
+
|
87
|
+
it "raises an appropriate error when the install fails" do
|
88
|
+
@helper.should_receive(:build_gem) do
|
89
|
+
# write an invalid gem file, so we can simulate install failure...
|
90
|
+
FileUtils.mkdir_p(File.join(@app.to_s, 'pkg'))
|
91
|
+
path = "#{@app.to_s}/pkg/test-0.0.1.gem"
|
92
|
+
File.open(path, 'w'){|f| f << "not actually a gem"}
|
93
|
+
path
|
94
|
+
end
|
95
|
+
proc { @helper.install_gem }.should raise_error
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'release' do
|
100
|
+
it "shouldn't push if there are uncommitted files" do
|
101
|
+
proc { @helper.release_gem }.should raise_error(/files that need to be committed/)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'raises an appropriate error if there is no git remote' do
|
105
|
+
Bundler.ui.stub(:confirm => nil, :error => nil) # silence messages
|
106
|
+
|
107
|
+
Dir.chdir(gem_repo1) {
|
108
|
+
`git init --bare`
|
109
|
+
}
|
110
|
+
Dir.chdir(@app) {
|
111
|
+
`git init`
|
112
|
+
`git config user.email "you@example.com"`
|
113
|
+
`git config user.name "name"`
|
114
|
+
`git commit -a -m "initial commit"`
|
115
|
+
}
|
116
|
+
|
117
|
+
proc { @helper.release_gem }.should raise_error
|
118
|
+
end
|
119
|
+
|
120
|
+
it "releases" do
|
121
|
+
mock_build_message
|
122
|
+
mock_confirm_message(/Tagged v0.0.1/)
|
123
|
+
mock_confirm_message("Pushed git commits and tags")
|
124
|
+
|
125
|
+
@helper.should_receive(:rubygem_push).with(bundled_app('test/pkg/test-0.0.1.gem').to_s)
|
126
|
+
|
127
|
+
Dir.chdir(gem_repo1) {
|
128
|
+
`git init --bare`
|
129
|
+
}
|
130
|
+
Dir.chdir(@app) {
|
131
|
+
`git init`
|
132
|
+
`git config user.email "you@example.com"`
|
133
|
+
`git config user.name "name"`
|
134
|
+
`git remote add origin file://#{gem_repo1}`
|
135
|
+
`git commit -a -m "initial commit"`
|
136
|
+
sys_exec("git push origin master", true)
|
137
|
+
`git commit -a -m "another commit"`
|
138
|
+
}
|
139
|
+
@helper.release_gem
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
@@ -0,0 +1,230 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle cache" do
|
4
|
+
|
5
|
+
describe "when there are only gemsources" do
|
6
|
+
before :each do
|
7
|
+
gemfile <<-G
|
8
|
+
gem 'rack'
|
9
|
+
G
|
10
|
+
|
11
|
+
system_gems "rack-1.0.0"
|
12
|
+
bundle :cache
|
13
|
+
end
|
14
|
+
|
15
|
+
it "copies the .gem file to vendor/cache" do
|
16
|
+
bundled_app("vendor/cache/rack-1.0.0.gem").should exist
|
17
|
+
end
|
18
|
+
|
19
|
+
it "uses the cache as a source when installing gems" do
|
20
|
+
build_gem "omg", :path => bundled_app('vendor/cache')
|
21
|
+
|
22
|
+
install_gemfile <<-G
|
23
|
+
source "file://#{gem_repo1}"
|
24
|
+
gem "omg"
|
25
|
+
G
|
26
|
+
|
27
|
+
should_be_installed "omg 1.0.0"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "uses the cache as a source when installing gems with --local" do
|
31
|
+
system_gems []
|
32
|
+
bundle "install --local"
|
33
|
+
|
34
|
+
should_be_installed("rack 1.0.0")
|
35
|
+
end
|
36
|
+
|
37
|
+
it "does not reinstall gems from the cache if they exist on the system" do
|
38
|
+
build_gem "rack", "1.0.0", :path => bundled_app('vendor/cache') do |s|
|
39
|
+
s.write "lib/rack.rb", "RACK = 'FAIL'"
|
40
|
+
end
|
41
|
+
|
42
|
+
install_gemfile <<-G
|
43
|
+
gem "rack"
|
44
|
+
G
|
45
|
+
|
46
|
+
should_be_installed("rack 1.0.0")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "does not reinstall gems from the cache if they exist in the bundle" do
|
50
|
+
system_gems "rack-1.0.0"
|
51
|
+
|
52
|
+
gemfile <<-G
|
53
|
+
gem "rack"
|
54
|
+
G
|
55
|
+
|
56
|
+
build_gem "rack", "1.0.0", :path => bundled_app('vendor/cache') do |s|
|
57
|
+
s.write "lib/rack.rb", "RACK = 'FAIL'"
|
58
|
+
end
|
59
|
+
|
60
|
+
bundle "install --local"
|
61
|
+
should_be_installed("rack 1.0.0")
|
62
|
+
end
|
63
|
+
|
64
|
+
it "creates a lockfile" do
|
65
|
+
cache_gems "rack-1.0.0"
|
66
|
+
|
67
|
+
gemfile <<-G
|
68
|
+
gem "rack"
|
69
|
+
G
|
70
|
+
|
71
|
+
bundle "cache"
|
72
|
+
|
73
|
+
bundled_app("Gemfile.lock").should exist
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "when there are also git sources" do
|
78
|
+
before do
|
79
|
+
build_git "foo"
|
80
|
+
system_gems "rack-1.0.0"
|
81
|
+
|
82
|
+
install_gemfile <<-G
|
83
|
+
source "file://#{gem_repo1}"
|
84
|
+
git "#{lib_path("foo-1.0")}" do
|
85
|
+
gem 'foo'
|
86
|
+
end
|
87
|
+
gem 'rack'
|
88
|
+
G
|
89
|
+
end
|
90
|
+
|
91
|
+
it "still works" do
|
92
|
+
bundle :cache
|
93
|
+
|
94
|
+
system_gems []
|
95
|
+
bundle "install --local"
|
96
|
+
|
97
|
+
should_be_installed("rack 1.0.0", "foo 1.0")
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should not explode if the lockfile is not present" do
|
101
|
+
FileUtils.rm(bundled_app("Gemfile.lock"))
|
102
|
+
|
103
|
+
bundle :cache
|
104
|
+
|
105
|
+
bundled_app("Gemfile.lock").should exist
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe "when previously cached" do
|
110
|
+
before :each do
|
111
|
+
build_repo2
|
112
|
+
install_gemfile <<-G
|
113
|
+
source "file://#{gem_repo2}"
|
114
|
+
gem "rack"
|
115
|
+
gem "actionpack"
|
116
|
+
G
|
117
|
+
bundle :cache
|
118
|
+
cached_gem("rack-1.0.0").should exist
|
119
|
+
cached_gem("actionpack-2.3.2").should exist
|
120
|
+
cached_gem("activesupport-2.3.2").should exist
|
121
|
+
end
|
122
|
+
|
123
|
+
it "re-caches during install" do
|
124
|
+
cached_gem("rack-1.0.0").rmtree
|
125
|
+
bundle :install
|
126
|
+
out.should include("Updating .gem files in vendor/cache")
|
127
|
+
cached_gem("rack-1.0.0").should exist
|
128
|
+
end
|
129
|
+
|
130
|
+
it "adds and removes when gems are updated" do
|
131
|
+
update_repo2
|
132
|
+
bundle 'update'
|
133
|
+
cached_gem("rack-1.2").should exist
|
134
|
+
cached_gem("rack-1.0.0").should_not exist
|
135
|
+
end
|
136
|
+
|
137
|
+
it "adds new gems and dependencies" do
|
138
|
+
install_gemfile <<-G
|
139
|
+
source "file://#{gem_repo2}"
|
140
|
+
gem "rails"
|
141
|
+
G
|
142
|
+
cached_gem("rails-2.3.2").should exist
|
143
|
+
cached_gem("activerecord-2.3.2").should exist
|
144
|
+
end
|
145
|
+
|
146
|
+
it "removes .gems for removed gems and dependencies" do
|
147
|
+
install_gemfile <<-G
|
148
|
+
source "file://#{gem_repo2}"
|
149
|
+
gem "rack"
|
150
|
+
G
|
151
|
+
cached_gem("rack-1.0.0").should exist
|
152
|
+
cached_gem("actionpack-2.3.2").should_not exist
|
153
|
+
cached_gem("activesupport-2.3.2").should_not exist
|
154
|
+
end
|
155
|
+
|
156
|
+
it "removes .gems when gem changes to git source" do
|
157
|
+
build_git "rack"
|
158
|
+
|
159
|
+
install_gemfile <<-G
|
160
|
+
source "file://#{gem_repo2}"
|
161
|
+
gem "rack", :git => "#{lib_path("rack-1.0")}"
|
162
|
+
gem "actionpack"
|
163
|
+
G
|
164
|
+
cached_gem("rack-1.0.0").should_not exist
|
165
|
+
cached_gem("actionpack-2.3.2").should exist
|
166
|
+
cached_gem("activesupport-2.3.2").should exist
|
167
|
+
end
|
168
|
+
|
169
|
+
|
170
|
+
it "doesn't remove gems that are for another platform" do
|
171
|
+
simulate_platform "java" do
|
172
|
+
install_gemfile <<-G
|
173
|
+
source "file://#{gem_repo1}"
|
174
|
+
gem "platform_specific"
|
175
|
+
G
|
176
|
+
|
177
|
+
bundle :cache
|
178
|
+
cached_gem("platform_specific-1.0-java").should exist
|
179
|
+
end
|
180
|
+
|
181
|
+
simulate_new_machine
|
182
|
+
install_gemfile <<-G
|
183
|
+
source "file://#{gem_repo1}"
|
184
|
+
gem "platform_specific"
|
185
|
+
G
|
186
|
+
|
187
|
+
cached_gem("platform_specific-1.0-#{Gem::Platform.local}").should exist
|
188
|
+
cached_gem("platform_specific-1.0-java").should exist
|
189
|
+
end
|
190
|
+
|
191
|
+
it "doesn't remove gems with mismatched :rubygems_version or :date" do
|
192
|
+
cached_gem("rack-1.0.0").rmtree
|
193
|
+
build_gem "rack", "1.0.0",
|
194
|
+
:path => bundled_app('vendor/cache'),
|
195
|
+
:rubygems_version => "1.3.2"
|
196
|
+
simulate_new_machine
|
197
|
+
|
198
|
+
bundle :install
|
199
|
+
cached_gem("rack-1.0.0").should exist
|
200
|
+
end
|
201
|
+
|
202
|
+
it "handles directories and non .gem files in the cache" do
|
203
|
+
bundled_app("vendor/cache/foo").mkdir
|
204
|
+
File.open(bundled_app("vendor/cache/bar"), 'w'){|f| f.write("not a gem") }
|
205
|
+
bundle :cache
|
206
|
+
end
|
207
|
+
|
208
|
+
it "does not say that it is removing gems when it isn't actually doing so" do
|
209
|
+
install_gemfile <<-G
|
210
|
+
source "file://#{gem_repo1}"
|
211
|
+
gem "rack"
|
212
|
+
G
|
213
|
+
bundle "cache"
|
214
|
+
bundle "install"
|
215
|
+
out.should_not =~ /removing/i
|
216
|
+
end
|
217
|
+
|
218
|
+
it "should install gems with the name bundler in them (that aren't bundler)" do
|
219
|
+
build_gem "foo-bundler", "1.0",
|
220
|
+
:path => bundled_app('vendor/cache')
|
221
|
+
|
222
|
+
install_gemfile <<-G
|
223
|
+
gem "foo-bundler"
|
224
|
+
G
|
225
|
+
|
226
|
+
should_be_installed "foo-bundler 1.0"
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
describe "bundle cache with git" do
|
3
|
+
it "base_name should strip private repo uris" do
|
4
|
+
source = Bundler::Source::Git.new("uri" => "git@github.com:bundler.git")
|
5
|
+
source.send(:base_name).should == "bundler"
|
6
|
+
end
|
7
|
+
|
8
|
+
it "base_name should strip network share paths" do
|
9
|
+
source = Bundler::Source::Git.new("uri" => "//MachineName/ShareFolder")
|
10
|
+
source.send(:base_name).should == "ShareFolder"
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle cache" do
|
4
|
+
describe "with path sources" do
|
5
|
+
it "is silent when the path is within the bundle" do
|
6
|
+
build_lib "foo", :path => bundled_app("lib/foo")
|
7
|
+
|
8
|
+
install_gemfile <<-G
|
9
|
+
gem "foo", :path => '#{bundled_app("lib/foo")}'
|
10
|
+
G
|
11
|
+
|
12
|
+
bundle "cache"
|
13
|
+
out.should == "Updating .gem files in vendor/cache"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "warns when the path is outside of the bundle" do
|
17
|
+
build_lib "foo"
|
18
|
+
|
19
|
+
install_gemfile <<-G
|
20
|
+
gem "foo", :path => '#{lib_path("foo-1.0")}'
|
21
|
+
G
|
22
|
+
|
23
|
+
bundle "cache"
|
24
|
+
out.should include("foo at `#{lib_path("foo-1.0")}` will not be cached")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle cache with multiple platforms" do
|
4
|
+
before :each do
|
5
|
+
gemfile <<-G
|
6
|
+
source "file://#{gem_repo1}"
|
7
|
+
|
8
|
+
platforms :ruby, :ruby_18, :ruby_19 do
|
9
|
+
gem "rack", "1.0.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
platforms :jruby do
|
13
|
+
gem "activesupport", "2.3.5"
|
14
|
+
end
|
15
|
+
|
16
|
+
platforms :mri, :mri_18, :mri_19 do
|
17
|
+
gem "activerecord", "2.3.2"
|
18
|
+
end
|
19
|
+
G
|
20
|
+
|
21
|
+
lockfile <<-G
|
22
|
+
GEM
|
23
|
+
remote: file:#{gem_repo1}/
|
24
|
+
specs:
|
25
|
+
rack (1.0.0)
|
26
|
+
activesupport (2.3.5)
|
27
|
+
activerecord (2.3.2)
|
28
|
+
|
29
|
+
PLATFORMS
|
30
|
+
ruby
|
31
|
+
java
|
32
|
+
|
33
|
+
DEPENDENCIES
|
34
|
+
rack (1.0.0)
|
35
|
+
activesupport (2.3.5)
|
36
|
+
activerecord (2.3.2)
|
37
|
+
G
|
38
|
+
|
39
|
+
cache_gems "rack-1.0.0", "activesupport-2.3.5", "activerecord-2.3.2"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "ensures that bundle install does not delete gems for other platforms" do
|
43
|
+
bundle "install"
|
44
|
+
|
45
|
+
bundled_app("vendor/cache/rack-1.0.0.gem").should exist
|
46
|
+
bundled_app("vendor/cache/activesupport-2.3.5.gem").should exist
|
47
|
+
bundled_app("vendor/cache/activerecord-2.3.2.gem").should exist
|
48
|
+
end
|
49
|
+
|
50
|
+
it "ensures that bundle update does not delete gems for other platforms" do
|
51
|
+
bundle "update"
|
52
|
+
|
53
|
+
bundled_app("vendor/cache/rack-1.0.0.gem").should exist
|
54
|
+
bundled_app("vendor/cache/activesupport-2.3.5.gem").should exist
|
55
|
+
bundled_app("vendor/cache/activerecord-2.3.2.gem").should exist
|
56
|
+
end
|
57
|
+
end
|