bundler 1.0.22 → 1.1.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.
- data/CHANGELOG.md +15 -181
- data/ISSUES.md +11 -26
- data/LICENSE +0 -2
- data/Rakefile +67 -116
- data/UPGRADING.md +4 -4
- data/bin/bundle +10 -10
- data/bundler.gemspec +5 -5
- data/lib/bundler.rb +15 -25
- data/lib/bundler/capistrano.rb +2 -2
- data/lib/bundler/cli.rb +41 -72
- data/lib/bundler/definition.rb +11 -37
- data/lib/bundler/dependency.rb +9 -13
- data/lib/bundler/deployment.rb +3 -8
- data/lib/bundler/dsl.rb +10 -24
- data/lib/bundler/fetcher.rb +101 -0
- data/lib/bundler/gem_helper.rb +6 -11
- data/lib/bundler/index.rb +8 -15
- data/lib/bundler/installer.rb +55 -35
- data/lib/bundler/lazy_specification.rb +7 -10
- data/lib/bundler/remote_specification.rb +6 -8
- data/lib/bundler/resolver.rb +18 -12
- data/lib/bundler/rubygems_ext.rb +3 -20
- data/lib/bundler/runtime.rb +57 -8
- data/lib/bundler/settings.rb +6 -4
- data/lib/bundler/setup.rb +5 -12
- data/lib/bundler/shared_helpers.rb +100 -4
- data/lib/bundler/source.rb +61 -106
- data/lib/bundler/spec_set.rb +8 -9
- data/lib/bundler/templates/newgem/Rakefile.tt +2 -1
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +0 -2
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -6
- data/lib/bundler/ui.rb +1 -4
- 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 +4 -43
- data/lib/bundler/vendor/thor/actions.rb +11 -28
- data/lib/bundler/vendor/thor/actions/create_file.rb +2 -2
- data/lib/bundler/vendor/thor/actions/directory.rb +2 -2
- data/lib/bundler/vendor/thor/actions/empty_directory.rb +0 -0
- data/lib/bundler/vendor/thor/actions/file_manipulation.rb +15 -56
- data/lib/bundler/vendor/thor/actions/inject_into_file.rb +10 -15
- data/lib/bundler/vendor/thor/base.rb +4 -24
- data/lib/bundler/vendor/thor/core_ext/file_binary_read.rb +0 -0
- data/lib/bundler/vendor/thor/core_ext/hash_with_indifferent_access.rb +0 -0
- data/lib/bundler/vendor/thor/core_ext/ordered_hash.rb +0 -0
- data/lib/bundler/vendor/thor/error.rb +0 -0
- data/lib/bundler/vendor/thor/invocation.rb +0 -0
- data/lib/bundler/vendor/thor/parser.rb +0 -0
- data/lib/bundler/vendor/thor/parser/argument.rb +0 -0
- data/lib/bundler/vendor/thor/parser/arguments.rb +2 -2
- data/lib/bundler/vendor/thor/parser/option.rb +1 -1
- data/lib/bundler/vendor/thor/parser/options.rb +16 -17
- data/lib/bundler/vendor/thor/shell.rb +0 -0
- data/lib/bundler/vendor/thor/shell/basic.rb +13 -40
- data/lib/bundler/vendor/thor/shell/color.rb +0 -0
- data/lib/bundler/vendor/thor/task.rb +4 -3
- data/lib/bundler/vendor/thor/util.rb +2 -2
- data/lib/bundler/vendor/thor/version.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/vlad.rb +0 -2
- data/man/bundle-install.ronn +3 -6
- data/man/gemfile.5.ronn +2 -7
- data/spec/cache/gems_spec.rb +0 -11
- data/spec/cache/git_spec.rb +2 -5
- data/spec/install/deploy_spec.rb +8 -8
- data/spec/install/gems/dependency_api_spec.rb +85 -0
- data/spec/install/gems/flex_spec.rb +4 -4
- data/spec/install/gems/groups_spec.rb +3 -17
- data/spec/install/gems/platform_spec.rb +16 -0
- data/spec/install/gems/simple_case_spec.rb +24 -88
- data/spec/install/gems/standalone_spec.rb +162 -0
- data/spec/install/gems/sudo_spec.rb +2 -3
- data/spec/install/gemspec_spec.rb +0 -38
- data/spec/install/git_spec.rb +4 -3
- data/spec/install/invalid_spec.rb +0 -18
- data/spec/install/path_spec.rb +1 -53
- data/spec/lock/git_spec.rb +1 -1
- data/spec/lock/lockfile_spec.rb +16 -72
- data/spec/other/check_spec.rb +6 -6
- data/spec/other/clean_spec.rb +202 -0
- data/spec/other/exec_spec.rb +7 -14
- data/spec/other/ext_spec.rb +0 -21
- data/spec/{bundler → other}/gem_helper_spec.rb +1 -16
- data/spec/other/help_spec.rb +1 -2
- data/spec/other/init_spec.rb +3 -3
- data/spec/other/newgem_spec.rb +1 -23
- data/spec/pack/gems_spec.rb +22 -0
- data/spec/quality_spec.rb +2 -6
- data/spec/runtime/require_spec.rb +10 -10
- data/spec/runtime/setup_spec.rb +12 -54
- data/spec/spec_helper.rb +7 -14
- 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 +2 -25
- data/spec/support/fakeweb/rack-1.0.0.marshal +2 -0
- data/spec/support/fakeweb/windows.rb +23 -0
- data/spec/support/helpers.rb +12 -5
- data/spec/support/matchers.rb +16 -4
- data/spec/support/path.rb +2 -0
- data/spec/support/rubygems_ext.rb +2 -6
- data/spec/update/gems_spec.rb +2 -3
- data/spec/update/git_spec.rb +2 -2
- metadata +41 -24
- data/.travis.yml +0 -31
- data/lib/bundler/gem_installer.rb +0 -9
- data/lib/bundler/gem_tasks.rb +0 -2
- data/lib/bundler/rubygems_integration.rb +0 -344
- data/lib/bundler/vendor/thor/actions/create_link.rb +0 -57
- data/lib/bundler/vendor/thor/group.rb +0 -273
- data/lib/bundler/vendor/thor/rake_compat.rb +0 -66
- data/lib/bundler/vendor/thor/runner.rb +0 -309
- data/lib/bundler/vendored_thor.rb +0 -7
@@ -0,0 +1,85 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "gemcutter's dependency API" do
|
4
|
+
it "should use the API" do
|
5
|
+
gemfile <<-G
|
6
|
+
source "http://localgemserver.test"
|
7
|
+
gem "rack"
|
8
|
+
G
|
9
|
+
|
10
|
+
bundle :install, :artifice => "endpoint"
|
11
|
+
should_be_installed "rack 1.0.0"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should handle nested dependencies" do
|
15
|
+
gemfile <<-G
|
16
|
+
source "http://localgemserver.test"
|
17
|
+
gem "rails"
|
18
|
+
G
|
19
|
+
|
20
|
+
bundle :install, :artifice => "endpoint"
|
21
|
+
should_be_installed(
|
22
|
+
"rails 2.3.2",
|
23
|
+
"actionpack 2.3.2",
|
24
|
+
"activerecord 2.3.2",
|
25
|
+
"actionmailer 2.3.2",
|
26
|
+
"activeresource 2.3.2",
|
27
|
+
"activesupport 2.3.2")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "falls back when the API errors out" do
|
31
|
+
simulate_platform mswin
|
32
|
+
|
33
|
+
gemfile <<-G
|
34
|
+
source "http://localgemserver.test/"
|
35
|
+
gem "rcov"
|
36
|
+
G
|
37
|
+
|
38
|
+
bundle :install, :fakeweb => "windows"
|
39
|
+
should_be_installed "rcov 1.0.0"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "falls back when hitting the Gemcutter Dependency Limit" do
|
43
|
+
gemfile <<-G
|
44
|
+
source "http://localgemserver.test"
|
45
|
+
gem "activesupport"
|
46
|
+
gem "actionpack"
|
47
|
+
gem "actionmailer"
|
48
|
+
gem "activeresource"
|
49
|
+
gem "thin"
|
50
|
+
gem "rack"
|
51
|
+
gem "rails"
|
52
|
+
G
|
53
|
+
bundle :install, :artifice => "endpoint_fallback"
|
54
|
+
|
55
|
+
should_be_installed(
|
56
|
+
"activesupport 2.3.2",
|
57
|
+
"actionpack 2.3.2",
|
58
|
+
"actionmailer 2.3.2",
|
59
|
+
"activeresource 2.3.2",
|
60
|
+
"activesupport 2.3.2",
|
61
|
+
"thin 1.0.0",
|
62
|
+
"rack 1.0.0",
|
63
|
+
"rails 2.3.2")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "falls back when Gemcutter API doesn't return proper Marshal format" do
|
67
|
+
gemfile <<-G
|
68
|
+
source "http://localgemserver.test"
|
69
|
+
gem "rack"
|
70
|
+
G
|
71
|
+
|
72
|
+
bundle :install, :artifice => "endpoint_marshal_fail"
|
73
|
+
should_be_installed "rack 1.0.0"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "timeouts when Bundler::Fetcher redirects to much" do
|
77
|
+
gemfile <<-G
|
78
|
+
source "http://localgemserver.test"
|
79
|
+
gem "rack"
|
80
|
+
G
|
81
|
+
|
82
|
+
bundle :install, :artifice => "endpoint_redirect"
|
83
|
+
out.should match(/Too many redirects/)
|
84
|
+
end
|
85
|
+
end
|
@@ -185,10 +185,10 @@ describe "bundle flex_install" do
|
|
185
185
|
|
186
186
|
it "does not install gems whose dependencies are not met" do
|
187
187
|
bundle :install
|
188
|
-
ruby <<-RUBY
|
188
|
+
ruby <<-RUBY
|
189
189
|
require 'bundler/setup'
|
190
190
|
RUBY
|
191
|
-
|
191
|
+
out.should =~ /could not find gem 'rack-obama/i
|
192
192
|
end
|
193
193
|
|
194
194
|
it "suggests bundle update when the Gemfile requires different versions than the lock" do
|
@@ -199,8 +199,8 @@ describe "bundle flex_install" do
|
|
199
199
|
rack (0.9.1)
|
200
200
|
|
201
201
|
In Gemfile:
|
202
|
-
rack-obama (= 2.0)
|
203
|
-
rack (= 1.2)
|
202
|
+
rack-obama (= 2.0) depends on
|
203
|
+
rack (= 1.2)
|
204
204
|
|
205
205
|
Running `bundle update` will rebuild your snapshot from scratch, using only
|
206
206
|
the gems in your Gemfile, which may resolve the conflict.
|
@@ -35,13 +35,13 @@ describe "bundle install with gem sources" do
|
|
35
35
|
|
36
36
|
it "sets up everything if Bundler.setup is used with no groups" do
|
37
37
|
out = run("require 'rack'; puts RACK")
|
38
|
-
out.should
|
38
|
+
check out.should == '1.0.0'
|
39
39
|
|
40
40
|
out = run("require 'activesupport'; puts ACTIVESUPPORT")
|
41
|
-
out.should
|
41
|
+
check out.should == '2.3.5'
|
42
42
|
|
43
43
|
out = run("require 'thin'; puts THIN")
|
44
|
-
out.should
|
44
|
+
out.should == '1.0'
|
45
45
|
end
|
46
46
|
|
47
47
|
it "removes old groups when new groups are set up" do
|
@@ -136,20 +136,6 @@ describe "bundle install with gem sources" do
|
|
136
136
|
|
137
137
|
ENV["BUNDLE_WITHOUT"] = nil
|
138
138
|
end
|
139
|
-
|
140
|
-
it "clears without when passed an empty list" do
|
141
|
-
bundle :install, :without => "emo"
|
142
|
-
|
143
|
-
bundle 'install --without ""'
|
144
|
-
should_be_installed "activesupport 2.3.5"
|
145
|
-
end
|
146
|
-
|
147
|
-
it "doesn't clear without when nothing is passed" do
|
148
|
-
bundle :install, :without => "emo"
|
149
|
-
|
150
|
-
bundle :install
|
151
|
-
should_not_be_installed "activesupport 2.3.5"
|
152
|
-
end
|
153
139
|
end
|
154
140
|
|
155
141
|
describe "with gems assigned to multiple groups" do
|
@@ -190,3 +190,19 @@ describe "bundle install with platform conditionals" do
|
|
190
190
|
end
|
191
191
|
|
192
192
|
end
|
193
|
+
|
194
|
+
describe "when a gem has an architecture in its platform" do
|
195
|
+
it "still installs correctly" do
|
196
|
+
simulate_platform mswin
|
197
|
+
|
198
|
+
gemfile <<-G
|
199
|
+
# Try to install gem with nil arch
|
200
|
+
source "http://localgemserver.test/"
|
201
|
+
gem "rcov"
|
202
|
+
G
|
203
|
+
|
204
|
+
bundle :install, :fakeweb => "windows"
|
205
|
+
should_be_installed "rcov 1.0.0"
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
@@ -466,54 +466,28 @@ describe "bundle install with gem sources" do
|
|
466
466
|
bundled_app("vendor/bundle").should exist
|
467
467
|
end
|
468
468
|
|
469
|
-
it "
|
470
|
-
bundle "install --path vendor
|
471
|
-
|
469
|
+
it "does not use available system gems with bundle --path vendor/bundle" do
|
470
|
+
bundle "install --path vendor/bundle"
|
471
|
+
should_be_installed "rack 1.0.0"
|
472
472
|
end
|
473
473
|
|
474
|
-
it "
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
Dir.chdir(dir) do
|
479
|
-
bundle "install --path vendor/bundle"
|
480
|
-
out.should include("installed into ./vendor/bundle")
|
481
|
-
end
|
482
|
-
|
483
|
-
dir.rmtree
|
474
|
+
it "prints a warning to let the user know what has happened with bundle --path vendor/bundle" do
|
475
|
+
bundle "install --path vendor/bundle"
|
476
|
+
out.should include("It was installed into ./vendor")
|
484
477
|
end
|
485
478
|
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
out.should include("The path argument to `bundle install` is deprecated.")
|
491
|
-
end
|
492
|
-
end
|
493
|
-
|
494
|
-
it "does not use available system gems with bundle #{install}" do
|
495
|
-
bundle install
|
496
|
-
should_be_installed "rack 1.0.0"
|
497
|
-
end
|
498
|
-
|
499
|
-
it "prints a warning to let the user know what has happened with bundle #{install}" do
|
500
|
-
bundle install
|
501
|
-
out.should include("It was installed into ./vendor")
|
502
|
-
end
|
503
|
-
|
504
|
-
it "disallows #{install} --system" do
|
505
|
-
bundle "#{install} --system"
|
506
|
-
out.should include("Please choose.")
|
507
|
-
end
|
479
|
+
it "disallows --path vendor/bundle --system" do
|
480
|
+
bundle "install --path vendor/bundle --system"
|
481
|
+
out.should include("Please choose.")
|
482
|
+
end
|
508
483
|
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
484
|
+
it "remembers to disable system gems after the first time with bundle --path vendor/bundle" do
|
485
|
+
bundle "install --path vendor/bundle"
|
486
|
+
FileUtils.rm_rf bundled_app('vendor')
|
487
|
+
bundle "install"
|
513
488
|
|
514
|
-
|
515
|
-
|
516
|
-
end
|
489
|
+
vendored_gems('gems/rack-1.0.0').should be_directory
|
490
|
+
should_be_installed "rack 1.0.0"
|
517
491
|
end
|
518
492
|
end
|
519
493
|
|
@@ -522,7 +496,7 @@ describe "bundle install with gem sources" do
|
|
522
496
|
install_gemfile <<-G
|
523
497
|
source "file://#{gem_repo1}"
|
524
498
|
gem "rack"
|
525
|
-
gem "activesupport", :
|
499
|
+
gem "activesupport", :groups => :development
|
526
500
|
G
|
527
501
|
|
528
502
|
ruby <<-R
|
@@ -557,44 +531,6 @@ describe "bundle install with gem sources" do
|
|
557
531
|
bundle :install
|
558
532
|
err.should be_empty
|
559
533
|
end
|
560
|
-
|
561
|
-
it "still installs correctly when using path" do
|
562
|
-
build_lib 'yaml_spec', :gemspec => :yaml
|
563
|
-
|
564
|
-
install_gemfile <<-G
|
565
|
-
gem 'yaml_spec', :path => "#{lib_path('yaml_spec-1.0')}"
|
566
|
-
G
|
567
|
-
err.should == ""
|
568
|
-
end
|
569
|
-
end
|
570
|
-
|
571
|
-
describe "when the gem has an architecture in its platform" do
|
572
|
-
it "still installs correctly" do
|
573
|
-
simulate_platform mswin
|
574
|
-
|
575
|
-
gemfile <<-G
|
576
|
-
# Set up pretend http gem server with FakeWeb
|
577
|
-
$LOAD_PATH.unshift '#{Dir[base_system_gems.join("gems/fakeweb*/lib")].first}'
|
578
|
-
require 'fakeweb'
|
579
|
-
FakeWeb.allow_net_connect = false
|
580
|
-
files = [ 'specs.4.8.gz',
|
581
|
-
'prerelease_specs.4.8.gz',
|
582
|
-
'quick/Marshal.4.8/rcov-1.0-mswin32.gemspec.rz',
|
583
|
-
'gems/rcov-1.0-mswin32.gem' ]
|
584
|
-
files.each do |file|
|
585
|
-
FakeWeb.register_uri(:get, "http://localgemserver.com/\#{file}",
|
586
|
-
:body => File.read("#{gem_repo1}/\#{file}"))
|
587
|
-
end
|
588
|
-
FakeWeb.register_uri(:get, "http://localgemserver.com/gems/rcov-1.0-x86-mswin32.gem",
|
589
|
-
:status => ["404", "Not Found"])
|
590
|
-
|
591
|
-
# Try to install gem with nil arch
|
592
|
-
source "http://localgemserver.com/"
|
593
|
-
gem "rcov"
|
594
|
-
G
|
595
|
-
bundle :install
|
596
|
-
should_be_installed "rcov 1.0.0"
|
597
|
-
end
|
598
534
|
end
|
599
535
|
|
600
536
|
describe "bundler dependencies" do
|
@@ -636,12 +572,12 @@ describe "bundle install with gem sources" do
|
|
636
572
|
Fetching source index for file:#{gem_repo2}/
|
637
573
|
Bundler could not find compatible versions for gem "bundler":
|
638
574
|
In Gemfile:
|
639
|
-
bundler (= 0.9.2)
|
575
|
+
bundler (= 0.9.2)
|
640
576
|
|
641
577
|
Current Bundler version:
|
642
578
|
bundler (#{Bundler::VERSION})
|
643
579
|
E
|
644
|
-
out.should
|
580
|
+
out.should == nice_error
|
645
581
|
end
|
646
582
|
|
647
583
|
it "works for gems with multiple versions in its dependencies" do
|
@@ -693,10 +629,10 @@ describe "bundle install with gem sources" do
|
|
693
629
|
Fetching source index for file:#{gem_repo2}/
|
694
630
|
Bundler could not find compatible versions for gem "activesupport":
|
695
631
|
In Gemfile:
|
696
|
-
activemerchant
|
697
|
-
activesupport (>= 2.0.0)
|
632
|
+
activemerchant depends on
|
633
|
+
activesupport (>= 2.0.0)
|
698
634
|
|
699
|
-
rails_fail
|
635
|
+
rails_fail depends on
|
700
636
|
activesupport (1.2.3)
|
701
637
|
E
|
702
638
|
out.should == nice_error
|
@@ -713,8 +649,8 @@ describe "bundle install with gem sources" do
|
|
713
649
|
Fetching source index for file:#{gem_repo2}/
|
714
650
|
Bundler could not find compatible versions for gem "activesupport":
|
715
651
|
In Gemfile:
|
716
|
-
rails_fail
|
717
|
-
activesupport (= 1.2.3)
|
652
|
+
rails_fail depends on
|
653
|
+
activesupport (= 1.2.3)
|
718
654
|
|
719
655
|
activesupport (2.3.5)
|
720
656
|
E
|
@@ -0,0 +1,162 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bundle install --standalone" do
|
4
|
+
describe "with simple gems" do
|
5
|
+
before do
|
6
|
+
install_gemfile <<-G, :standalone => true
|
7
|
+
source "file://#{gem_repo1}"
|
8
|
+
gem "rails"
|
9
|
+
G
|
10
|
+
end
|
11
|
+
|
12
|
+
it "still makes the gems available to normal bundler" do
|
13
|
+
should_be_installed "actionpack 2.3.2", "rails 2.3.2"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "generates a bundle/bundler/setup.rb" do
|
17
|
+
bundled_app("bundle/bundler/setup.rb").should exist
|
18
|
+
end
|
19
|
+
|
20
|
+
it "makes the gems available without bundler" do
|
21
|
+
ruby <<-RUBY, :no_lib => true
|
22
|
+
$:.unshift File.expand_path("bundle")
|
23
|
+
require "bundler/setup"
|
24
|
+
|
25
|
+
require "actionpack"
|
26
|
+
puts ACTIONPACK
|
27
|
+
RUBY
|
28
|
+
|
29
|
+
out.should == "2.3.2"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "works on a different system" do
|
33
|
+
FileUtils.mv(bundled_app, "#{bundled_app}2")
|
34
|
+
Dir.chdir("#{bundled_app}2")
|
35
|
+
|
36
|
+
ruby <<-RUBY, :no_lib => true
|
37
|
+
$:.unshift File.expand_path("bundle")
|
38
|
+
require "bundler/setup"
|
39
|
+
|
40
|
+
require "actionpack"
|
41
|
+
puts ACTIONPACK
|
42
|
+
RUBY
|
43
|
+
|
44
|
+
out.should == "2.3.2"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "with a combination of gems and git repos" do
|
49
|
+
before do
|
50
|
+
build_git "devise", "1.0"
|
51
|
+
|
52
|
+
install_gemfile <<-G, :standalone => true
|
53
|
+
source "file://#{gem_repo1}"
|
54
|
+
gem "rails"
|
55
|
+
gem "devise", :git => "#{lib_path('devise-1.0')}"
|
56
|
+
G
|
57
|
+
end
|
58
|
+
|
59
|
+
it "still makes the gems available to normal bundler" do
|
60
|
+
should_be_installed "actionpack 2.3.2", "rails 2.3.2", "devise 1.0"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "generates a bundle/bundler/setup.rb" do
|
64
|
+
bundled_app("bundle/bundler/setup.rb").should exist
|
65
|
+
end
|
66
|
+
|
67
|
+
it "makes the gems available without bundler" do
|
68
|
+
ruby <<-RUBY, :no_lib => true
|
69
|
+
$:.unshift File.expand_path("bundle")
|
70
|
+
require "bundler/setup"
|
71
|
+
|
72
|
+
require "devise"
|
73
|
+
require "actionpack"
|
74
|
+
puts DEVISE
|
75
|
+
puts ACTIONPACK
|
76
|
+
RUBY
|
77
|
+
|
78
|
+
out.should == "1.0\n2.3.2"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "with groups" do
|
83
|
+
before do
|
84
|
+
build_git "devise", "1.0"
|
85
|
+
|
86
|
+
install_gemfile <<-G, :standalone => true
|
87
|
+
source "file://#{gem_repo1}"
|
88
|
+
gem "rails"
|
89
|
+
|
90
|
+
group :test do
|
91
|
+
gem "rspec"
|
92
|
+
gem "rack-test"
|
93
|
+
end
|
94
|
+
G
|
95
|
+
end
|
96
|
+
|
97
|
+
it "makes the gems available without bundler" do
|
98
|
+
ruby <<-RUBY, :no_lib => true
|
99
|
+
$:.unshift File.expand_path("bundle")
|
100
|
+
require "bundler/setup"
|
101
|
+
|
102
|
+
require "actionpack"
|
103
|
+
require "spec"
|
104
|
+
require "rack/test"
|
105
|
+
puts ACTIONPACK
|
106
|
+
puts SPEC
|
107
|
+
puts RACK_TEST
|
108
|
+
RUBY
|
109
|
+
|
110
|
+
out.should == "2.3.2\n1.2.7\n1.0"
|
111
|
+
end
|
112
|
+
|
113
|
+
it "allows creating a standalone file with limited groups" do
|
114
|
+
bundle "install --standalone default"
|
115
|
+
|
116
|
+
ruby <<-RUBY, :no_lib => true, :expect_err => true
|
117
|
+
$:.unshift File.expand_path("bundle")
|
118
|
+
require "bundler/setup"
|
119
|
+
|
120
|
+
require "actionpack"
|
121
|
+
puts ACTIONPACK
|
122
|
+
require "spec"
|
123
|
+
RUBY
|
124
|
+
|
125
|
+
out.should == "2.3.2"
|
126
|
+
err.should =~ /no such file to load.*spec/
|
127
|
+
end
|
128
|
+
|
129
|
+
it "allows --without to limit the groups used in a standalone" do
|
130
|
+
bundle "install --standalone --without test"
|
131
|
+
|
132
|
+
ruby <<-RUBY, :no_lib => true, :expect_err => true
|
133
|
+
$:.unshift File.expand_path("bundle")
|
134
|
+
require "bundler/setup"
|
135
|
+
|
136
|
+
require "actionpack"
|
137
|
+
puts ACTIONPACK
|
138
|
+
require "spec"
|
139
|
+
RUBY
|
140
|
+
|
141
|
+
out.should == "2.3.2"
|
142
|
+
err.should =~ /no such file to load.*spec/
|
143
|
+
end
|
144
|
+
|
145
|
+
it "allows remembered --without to limit the groups used in a standalone" do
|
146
|
+
bundle "install --without test"
|
147
|
+
bundle "install --standalone"
|
148
|
+
|
149
|
+
ruby <<-RUBY, :no_lib => true, :expect_err => true
|
150
|
+
$:.unshift File.expand_path("bundle")
|
151
|
+
require "bundler/setup"
|
152
|
+
|
153
|
+
require "actionpack"
|
154
|
+
puts ACTIONPACK
|
155
|
+
require "spec"
|
156
|
+
RUBY
|
157
|
+
|
158
|
+
out.should == "2.3.2"
|
159
|
+
err.should =~ /no such file to load.*spec/
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|