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.

Files changed (114) hide show
  1. data/CHANGELOG.md +15 -181
  2. data/ISSUES.md +11 -26
  3. data/LICENSE +0 -2
  4. data/Rakefile +67 -116
  5. data/UPGRADING.md +4 -4
  6. data/bin/bundle +10 -10
  7. data/bundler.gemspec +5 -5
  8. data/lib/bundler.rb +15 -25
  9. data/lib/bundler/capistrano.rb +2 -2
  10. data/lib/bundler/cli.rb +41 -72
  11. data/lib/bundler/definition.rb +11 -37
  12. data/lib/bundler/dependency.rb +9 -13
  13. data/lib/bundler/deployment.rb +3 -8
  14. data/lib/bundler/dsl.rb +10 -24
  15. data/lib/bundler/fetcher.rb +101 -0
  16. data/lib/bundler/gem_helper.rb +6 -11
  17. data/lib/bundler/index.rb +8 -15
  18. data/lib/bundler/installer.rb +55 -35
  19. data/lib/bundler/lazy_specification.rb +7 -10
  20. data/lib/bundler/remote_specification.rb +6 -8
  21. data/lib/bundler/resolver.rb +18 -12
  22. data/lib/bundler/rubygems_ext.rb +3 -20
  23. data/lib/bundler/runtime.rb +57 -8
  24. data/lib/bundler/settings.rb +6 -4
  25. data/lib/bundler/setup.rb +5 -12
  26. data/lib/bundler/shared_helpers.rb +100 -4
  27. data/lib/bundler/source.rb +61 -106
  28. data/lib/bundler/spec_set.rb +8 -9
  29. data/lib/bundler/templates/newgem/Rakefile.tt +2 -1
  30. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +0 -2
  31. data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -6
  32. data/lib/bundler/ui.rb +1 -4
  33. data/lib/bundler/vendor/net/http/faster.rb +27 -0
  34. data/lib/bundler/vendor/net/http/persistent.rb +464 -0
  35. data/lib/bundler/vendor/thor.rb +4 -43
  36. data/lib/bundler/vendor/thor/actions.rb +11 -28
  37. data/lib/bundler/vendor/thor/actions/create_file.rb +2 -2
  38. data/lib/bundler/vendor/thor/actions/directory.rb +2 -2
  39. data/lib/bundler/vendor/thor/actions/empty_directory.rb +0 -0
  40. data/lib/bundler/vendor/thor/actions/file_manipulation.rb +15 -56
  41. data/lib/bundler/vendor/thor/actions/inject_into_file.rb +10 -15
  42. data/lib/bundler/vendor/thor/base.rb +4 -24
  43. data/lib/bundler/vendor/thor/core_ext/file_binary_read.rb +0 -0
  44. data/lib/bundler/vendor/thor/core_ext/hash_with_indifferent_access.rb +0 -0
  45. data/lib/bundler/vendor/thor/core_ext/ordered_hash.rb +0 -0
  46. data/lib/bundler/vendor/thor/error.rb +0 -0
  47. data/lib/bundler/vendor/thor/invocation.rb +0 -0
  48. data/lib/bundler/vendor/thor/parser.rb +0 -0
  49. data/lib/bundler/vendor/thor/parser/argument.rb +0 -0
  50. data/lib/bundler/vendor/thor/parser/arguments.rb +2 -2
  51. data/lib/bundler/vendor/thor/parser/option.rb +1 -1
  52. data/lib/bundler/vendor/thor/parser/options.rb +16 -17
  53. data/lib/bundler/vendor/thor/shell.rb +0 -0
  54. data/lib/bundler/vendor/thor/shell/basic.rb +13 -40
  55. data/lib/bundler/vendor/thor/shell/color.rb +0 -0
  56. data/lib/bundler/vendor/thor/task.rb +4 -3
  57. data/lib/bundler/vendor/thor/util.rb +2 -2
  58. data/lib/bundler/vendor/thor/version.rb +1 -1
  59. data/lib/bundler/version.rb +1 -1
  60. data/lib/bundler/vlad.rb +0 -2
  61. data/man/bundle-install.ronn +3 -6
  62. data/man/gemfile.5.ronn +2 -7
  63. data/spec/cache/gems_spec.rb +0 -11
  64. data/spec/cache/git_spec.rb +2 -5
  65. data/spec/install/deploy_spec.rb +8 -8
  66. data/spec/install/gems/dependency_api_spec.rb +85 -0
  67. data/spec/install/gems/flex_spec.rb +4 -4
  68. data/spec/install/gems/groups_spec.rb +3 -17
  69. data/spec/install/gems/platform_spec.rb +16 -0
  70. data/spec/install/gems/simple_case_spec.rb +24 -88
  71. data/spec/install/gems/standalone_spec.rb +162 -0
  72. data/spec/install/gems/sudo_spec.rb +2 -3
  73. data/spec/install/gemspec_spec.rb +0 -38
  74. data/spec/install/git_spec.rb +4 -3
  75. data/spec/install/invalid_spec.rb +0 -18
  76. data/spec/install/path_spec.rb +1 -53
  77. data/spec/lock/git_spec.rb +1 -1
  78. data/spec/lock/lockfile_spec.rb +16 -72
  79. data/spec/other/check_spec.rb +6 -6
  80. data/spec/other/clean_spec.rb +202 -0
  81. data/spec/other/exec_spec.rb +7 -14
  82. data/spec/other/ext_spec.rb +0 -21
  83. data/spec/{bundler → other}/gem_helper_spec.rb +1 -16
  84. data/spec/other/help_spec.rb +1 -2
  85. data/spec/other/init_spec.rb +3 -3
  86. data/spec/other/newgem_spec.rb +1 -23
  87. data/spec/pack/gems_spec.rb +22 -0
  88. data/spec/quality_spec.rb +2 -6
  89. data/spec/runtime/require_spec.rb +10 -10
  90. data/spec/runtime/setup_spec.rb +12 -54
  91. data/spec/spec_helper.rb +7 -14
  92. data/spec/support/artifice/endpoint.rb +50 -0
  93. data/spec/support/artifice/endpoint_fallback.rb +22 -0
  94. data/spec/support/artifice/endpoint_marshal_fail.rb +11 -0
  95. data/spec/support/artifice/endpoint_redirect.rb +11 -0
  96. data/spec/support/builders.rb +2 -25
  97. data/spec/support/fakeweb/rack-1.0.0.marshal +2 -0
  98. data/spec/support/fakeweb/windows.rb +23 -0
  99. data/spec/support/helpers.rb +12 -5
  100. data/spec/support/matchers.rb +16 -4
  101. data/spec/support/path.rb +2 -0
  102. data/spec/support/rubygems_ext.rb +2 -6
  103. data/spec/update/gems_spec.rb +2 -3
  104. data/spec/update/git_spec.rb +2 -2
  105. metadata +41 -24
  106. data/.travis.yml +0 -31
  107. data/lib/bundler/gem_installer.rb +0 -9
  108. data/lib/bundler/gem_tasks.rb +0 -2
  109. data/lib/bundler/rubygems_integration.rb +0 -344
  110. data/lib/bundler/vendor/thor/actions/create_link.rb +0 -57
  111. data/lib/bundler/vendor/thor/group.rb +0 -273
  112. data/lib/bundler/vendor/thor/rake_compat.rb +0 -66
  113. data/lib/bundler/vendor/thor/runner.rb +0 -309
  114. 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, :expect_err => true
188
+ ruby <<-RUBY
189
189
  require 'bundler/setup'
190
190
  RUBY
191
- err.should =~ /could not find gem 'rack-obama/i
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) ruby depends on
203
- rack (= 1.2) ruby
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 eq('1.0.0')
38
+ check out.should == '1.0.0'
39
39
 
40
40
  out = run("require 'activesupport'; puts ACTIVESUPPORT")
41
- out.should eq('2.3.5')
41
+ check out.should == '2.3.5'
42
42
 
43
43
  out = run("require 'thin'; puts THIN")
44
- out.should eq('1.0')
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 "prints a warning if you try to use --disable-shared-gems" do
470
- bundle "install --path vendor --disable-shared-gems"
471
- out.should include "The disable-shared-gem option is no longer available"
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 "handles paths with regex characters in them" do
475
- dir = bundled_app("bun++dle")
476
- dir.mkpath
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
- ["install vendor/bundle", "install --path vendor/bundle"].each do |install|
487
- if install == "install vendor/bundle"
488
- it "displays the deprecation warning for path as an argument to install" do
489
- bundle install
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
- it "remembers to disable system gems after the first time with bundle #{install}" do
510
- bundle install
511
- FileUtils.rm_rf bundled_app('vendor')
512
- bundle "install"
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
- vendored_gems('gems/rack-1.0.0').should be_directory
515
- should_be_installed "rack 1.0.0"
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", :group => :development
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) ruby
575
+ bundler (= 0.9.2)
640
576
 
641
577
  Current Bundler version:
642
578
  bundler (#{Bundler::VERSION})
643
579
  E
644
- out.should include(nice_error)
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 (>= 0) ruby depends on
697
- activesupport (>= 2.0.0) ruby
632
+ activemerchant depends on
633
+ activesupport (>= 2.0.0)
698
634
 
699
- rails_fail (>= 0) ruby depends on
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 (>= 0) ruby depends on
717
- activesupport (= 1.2.3) ruby
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