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.
Files changed (149) hide show
  1. data/.gitignore +22 -0
  2. data/.rvmrc +1 -0
  3. data/CHANGELOG.md +659 -0
  4. data/ISSUES.md +47 -0
  5. data/LICENSE +23 -0
  6. data/README.md +29 -0
  7. data/Rakefile +167 -0
  8. data/UPGRADING.md +103 -0
  9. data/bin/bundle +22 -0
  10. data/bundler.gemspec +30 -0
  11. data/lib/bundler.rb +283 -0
  12. data/lib/bundler/capistrano.rb +11 -0
  13. data/lib/bundler/cli.rb +490 -0
  14. data/lib/bundler/definition.rb +429 -0
  15. data/lib/bundler/dependency.rb +130 -0
  16. data/lib/bundler/deployment.rb +53 -0
  17. data/lib/bundler/dsl.rb +243 -0
  18. data/lib/bundler/environment.rb +47 -0
  19. data/lib/bundler/fetcher.rb +101 -0
  20. data/lib/bundler/gem_helper.rb +146 -0
  21. data/lib/bundler/graph.rb +130 -0
  22. data/lib/bundler/index.rb +131 -0
  23. data/lib/bundler/installer.rb +117 -0
  24. data/lib/bundler/lazy_specification.rb +71 -0
  25. data/lib/bundler/lockfile_parser.rb +108 -0
  26. data/lib/bundler/remote_specification.rb +57 -0
  27. data/lib/bundler/resolver.rb +470 -0
  28. data/lib/bundler/rubygems_ext.rb +226 -0
  29. data/lib/bundler/runtime.rb +201 -0
  30. data/lib/bundler/settings.rb +117 -0
  31. data/lib/bundler/setup.rb +16 -0
  32. data/lib/bundler/shared_helpers.rb +167 -0
  33. data/lib/bundler/source.rb +675 -0
  34. data/lib/bundler/spec_set.rb +134 -0
  35. data/lib/bundler/templates/Executable +16 -0
  36. data/lib/bundler/templates/Gemfile +4 -0
  37. data/lib/bundler/templates/newgem/Gemfile.tt +4 -0
  38. data/lib/bundler/templates/newgem/Rakefile.tt +2 -0
  39. data/lib/bundler/templates/newgem/bin/newgem.tt +3 -0
  40. data/lib/bundler/templates/newgem/gitignore.tt +4 -0
  41. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +7 -0
  42. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +7 -0
  43. data/lib/bundler/templates/newgem/newgem.gemspec.tt +21 -0
  44. data/lib/bundler/ui.rb +73 -0
  45. data/lib/bundler/vendor/net/http/faster.rb +27 -0
  46. data/lib/bundler/vendor/net/http/persistent.rb +464 -0
  47. data/lib/bundler/vendor/thor.rb +319 -0
  48. data/lib/bundler/vendor/thor/actions.rb +297 -0
  49. data/lib/bundler/vendor/thor/actions/create_file.rb +105 -0
  50. data/lib/bundler/vendor/thor/actions/directory.rb +93 -0
  51. data/lib/bundler/vendor/thor/actions/empty_directory.rb +134 -0
  52. data/lib/bundler/vendor/thor/actions/file_manipulation.rb +229 -0
  53. data/lib/bundler/vendor/thor/actions/inject_into_file.rb +104 -0
  54. data/lib/bundler/vendor/thor/base.rb +556 -0
  55. data/lib/bundler/vendor/thor/core_ext/file_binary_read.rb +9 -0
  56. data/lib/bundler/vendor/thor/core_ext/hash_with_indifferent_access.rb +75 -0
  57. data/lib/bundler/vendor/thor/core_ext/ordered_hash.rb +100 -0
  58. data/lib/bundler/vendor/thor/error.rb +30 -0
  59. data/lib/bundler/vendor/thor/invocation.rb +168 -0
  60. data/lib/bundler/vendor/thor/parser.rb +4 -0
  61. data/lib/bundler/vendor/thor/parser/argument.rb +67 -0
  62. data/lib/bundler/vendor/thor/parser/arguments.rb +161 -0
  63. data/lib/bundler/vendor/thor/parser/option.rb +120 -0
  64. data/lib/bundler/vendor/thor/parser/options.rb +174 -0
  65. data/lib/bundler/vendor/thor/shell.rb +88 -0
  66. data/lib/bundler/vendor/thor/shell/basic.rb +275 -0
  67. data/lib/bundler/vendor/thor/shell/color.rb +108 -0
  68. data/lib/bundler/vendor/thor/shell/html.rb +121 -0
  69. data/lib/bundler/vendor/thor/task.rb +114 -0
  70. data/lib/bundler/vendor/thor/util.rb +229 -0
  71. data/lib/bundler/vendor/thor/version.rb +3 -0
  72. data/lib/bundler/version.rb +6 -0
  73. data/lib/bundler/vlad.rb +9 -0
  74. data/man/bundle-config.ronn +90 -0
  75. data/man/bundle-exec.ronn +111 -0
  76. data/man/bundle-install.ronn +314 -0
  77. data/man/bundle-package.ronn +59 -0
  78. data/man/bundle-update.ronn +176 -0
  79. data/man/bundle.ronn +80 -0
  80. data/man/gemfile.5.ronn +279 -0
  81. data/man/index.txt +6 -0
  82. data/spec/cache/gems_spec.rb +219 -0
  83. data/spec/cache/git_spec.rb +9 -0
  84. data/spec/cache/path_spec.rb +27 -0
  85. data/spec/cache/platform_spec.rb +57 -0
  86. data/spec/install/deploy_spec.rb +197 -0
  87. data/spec/install/deprecated_spec.rb +37 -0
  88. data/spec/install/gems/c_ext_spec.rb +48 -0
  89. data/spec/install/gems/dependency_api_spec.rb +85 -0
  90. data/spec/install/gems/env_spec.rb +107 -0
  91. data/spec/install/gems/flex_spec.rb +313 -0
  92. data/spec/install/gems/groups_spec.rb +245 -0
  93. data/spec/install/gems/packed_spec.rb +84 -0
  94. data/spec/install/gems/platform_spec.rb +208 -0
  95. data/spec/install/gems/resolving_spec.rb +72 -0
  96. data/spec/install/gems/simple_case_spec.rb +715 -0
  97. data/spec/install/gems/standalone_spec.rb +162 -0
  98. data/spec/install/gems/sudo_spec.rb +73 -0
  99. data/spec/install/gems/win32_spec.rb +26 -0
  100. data/spec/install/gemspec_spec.rb +108 -0
  101. data/spec/install/git_spec.rb +571 -0
  102. data/spec/install/invalid_spec.rb +17 -0
  103. data/spec/install/path_spec.rb +353 -0
  104. data/spec/install/upgrade_spec.rb +26 -0
  105. data/spec/lock/git_spec.rb +35 -0
  106. data/spec/lock/lockfile_spec.rb +683 -0
  107. data/spec/other/check_spec.rb +221 -0
  108. data/spec/other/clean_spec.rb +202 -0
  109. data/spec/other/config_spec.rb +40 -0
  110. data/spec/other/console_spec.rb +54 -0
  111. data/spec/other/exec_spec.rb +241 -0
  112. data/spec/other/ext_spec.rb +16 -0
  113. data/spec/other/gem_helper_spec.rb +128 -0
  114. data/spec/other/help_spec.rb +38 -0
  115. data/spec/other/init_spec.rb +40 -0
  116. data/spec/other/newgem_spec.rb +24 -0
  117. data/spec/other/open_spec.rb +35 -0
  118. data/spec/other/show_spec.rb +82 -0
  119. data/spec/pack/gems_spec.rb +54 -0
  120. data/spec/quality_spec.rb +58 -0
  121. data/spec/resolver/basic_spec.rb +20 -0
  122. data/spec/resolver/platform_spec.rb +82 -0
  123. data/spec/runtime/executable_spec.rb +110 -0
  124. data/spec/runtime/load_spec.rb +107 -0
  125. data/spec/runtime/platform_spec.rb +90 -0
  126. data/spec/runtime/require_spec.rb +231 -0
  127. data/spec/runtime/setup_spec.rb +688 -0
  128. data/spec/runtime/with_clean_env_spec.rb +15 -0
  129. data/spec/spec_helper.rb +85 -0
  130. data/spec/support/artifice/endpoint.rb +50 -0
  131. data/spec/support/artifice/endpoint_fallback.rb +22 -0
  132. data/spec/support/artifice/endpoint_marshal_fail.rb +11 -0
  133. data/spec/support/artifice/endpoint_redirect.rb +11 -0
  134. data/spec/support/builders.rb +574 -0
  135. data/spec/support/fakeweb/rack-1.0.0.marshal +2 -0
  136. data/spec/support/fakeweb/windows.rb +23 -0
  137. data/spec/support/helpers.rb +246 -0
  138. data/spec/support/indexes.rb +112 -0
  139. data/spec/support/matchers.rb +89 -0
  140. data/spec/support/path.rb +73 -0
  141. data/spec/support/platforms.rb +53 -0
  142. data/spec/support/ruby_ext.rb +20 -0
  143. data/spec/support/rubygems_ext.rb +35 -0
  144. data/spec/support/rubygems_hax/platform.rb +11 -0
  145. data/spec/support/sudo.rb +21 -0
  146. data/spec/update/gems_spec.rb +121 -0
  147. data/spec/update/git_spec.rb +196 -0
  148. data/spec/update/source_spec.rb +51 -0
  149. metadata +294 -0
@@ -0,0 +1,54 @@
1
+ require "spec_helper"
2
+
3
+ describe "bundle console" do
4
+ before :each do
5
+ install_gemfile <<-G
6
+ source "file://#{gem_repo1}"
7
+ gem "rack"
8
+ gem "activesupport", :group => :test
9
+ gem "rack_middleware", :group => :development
10
+ G
11
+ end
12
+
13
+ it "starts IRB with the default group loaded" do
14
+ bundle "console" do |input|
15
+ input.puts("puts RACK")
16
+ input.puts("exit")
17
+ end
18
+ out.should include("0.9.1")
19
+ end
20
+
21
+ it "doesn't load any other groups" do
22
+ bundle "console" do |input|
23
+ input.puts("puts ACTIVESUPPORT")
24
+ input.puts("exit")
25
+ end
26
+ out.should include("NameError")
27
+ end
28
+
29
+ describe "when given a group" do
30
+ it "loads the given group" do
31
+ bundle "console test" do |input|
32
+ input.puts("puts ACTIVESUPPORT")
33
+ input.puts("exit")
34
+ end
35
+ out.should include("2.3.5")
36
+ end
37
+
38
+ it "loads the default group" do
39
+ bundle "console test" do |input|
40
+ input.puts("puts RACK")
41
+ input.puts("exit")
42
+ end
43
+ out.should include("0.9.1")
44
+ end
45
+
46
+ it "doesn't load other groups" do
47
+ bundle "console test" do |input|
48
+ input.puts("puts RACK_MIDDLEWARE")
49
+ input.puts("exit")
50
+ end
51
+ out.should include("NameError")
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,241 @@
1
+ require "spec_helper"
2
+
3
+ describe "bundle exec" do
4
+ before :each do
5
+ system_gems "rack-1.0.0", "rack-0.9.1"
6
+ end
7
+
8
+ it "activates the correct gem" do
9
+ gemfile <<-G
10
+ gem "rack", "0.9.1"
11
+ G
12
+
13
+ bundle "exec rackup"
14
+ out.should == "0.9.1"
15
+ end
16
+
17
+ it "works when the bins are in ~/.bundle" do
18
+ install_gemfile <<-G
19
+ gem "rack"
20
+ G
21
+
22
+ bundle "exec rackup"
23
+ out.should == "1.0.0"
24
+ end
25
+
26
+ it "works when running from a random directory" do
27
+ install_gemfile <<-G
28
+ gem "rack"
29
+ G
30
+
31
+ bundle "exec 'cd #{tmp('gems')} && rackup'"
32
+
33
+ out.should == "1.0.0"
34
+ end
35
+
36
+ it "handles different versions in different bundles" do
37
+ build_repo2 do
38
+ build_gem "rack_two", "1.0.0" do |s|
39
+ s.executables = "rackup"
40
+ end
41
+ end
42
+
43
+ install_gemfile <<-G
44
+ source "file://#{gem_repo1}"
45
+ gem "rack", "0.9.1"
46
+ G
47
+
48
+ Dir.chdir bundled_app2 do
49
+ install_gemfile bundled_app2('Gemfile'), <<-G
50
+ source "file://#{gem_repo2}"
51
+ gem "rack_two", "1.0.0"
52
+ G
53
+ end
54
+
55
+ bundle "exec rackup"
56
+
57
+ check out.should == "0.9.1"
58
+
59
+ Dir.chdir bundled_app2 do
60
+ bundle "exec rackup"
61
+ out.should == "1.0.0"
62
+ end
63
+ end
64
+
65
+ it "handles gems installed with --without" do
66
+ install_gemfile <<-G, :without => :middleware
67
+ source "file://#{gem_repo1}"
68
+ gem "rack" # rack 0.9.1 and 1.0 exist
69
+
70
+ group :middleware do
71
+ gem "rack_middleware" # rack_middleware depends on rack 0.9.1
72
+ end
73
+ G
74
+
75
+ bundle "exec rackup"
76
+
77
+ check out.should == "0.9.1"
78
+ should_not_be_installed "rack_middleware 1.0"
79
+ end
80
+
81
+ it "should not duplicate already exec'ed RUBYOPT or PATH" do
82
+ install_gemfile <<-G
83
+ gem "rack"
84
+ G
85
+
86
+ rubyopt = "-I#{bundler_path} -rbundler/setup"
87
+
88
+ bundle "exec 'echo $RUBYOPT'"
89
+ out.should have_rubyopts(rubyopt)
90
+
91
+ bundle "exec 'echo $RUBYOPT'", :env => {"RUBYOPT" => rubyopt}
92
+ out.should have_rubyopts(rubyopt)
93
+ end
94
+
95
+ it "errors nicely when the argument doesn't exist" do
96
+ install_gemfile <<-G
97
+ gem "rack"
98
+ G
99
+
100
+ bundle "exec foobarbaz", :exitstatus => true
101
+ check exitstatus.should == 127
102
+ out.should include("bundler: command not found: foobarbaz")
103
+ out.should include("Install missing gem binaries with `bundle install`")
104
+ end
105
+
106
+ it "errors nicely when the argument is not executable" do
107
+ install_gemfile <<-G
108
+ gem "rack"
109
+ G
110
+
111
+ bundle "exec touch foo"
112
+ bundle "exec ./foo", :exitstatus => true
113
+ check exitstatus.should == 126
114
+ out.should include("bundler: not executable: ./foo")
115
+ end
116
+
117
+ describe "with gem binaries" do
118
+ describe "run from a random directory" do
119
+ before(:each) do
120
+ install_gemfile <<-G
121
+ gem "rack"
122
+ G
123
+ end
124
+
125
+ it "works when unlocked" do
126
+ bundle "exec 'cd #{tmp('gems')} && rackup'"
127
+ out.should == "1.0.0"
128
+ end
129
+
130
+ it "works when locked" do
131
+ bundle "lock"
132
+ should_be_locked
133
+ bundle "exec 'cd #{tmp('gems')} && rackup'"
134
+ out.should == "1.0.0"
135
+ end
136
+ end
137
+
138
+ describe "from gems bundled via :path" do
139
+ before(:each) do
140
+ build_lib "fizz", :path => home("fizz") do |s|
141
+ s.executables = "fizz"
142
+ end
143
+
144
+ install_gemfile <<-G
145
+ gem "fizz", :path => "#{File.expand_path(home("fizz"))}"
146
+ G
147
+ end
148
+
149
+ it "works when unlocked" do
150
+ bundle "exec fizz"
151
+ out.should == "1.0"
152
+ end
153
+
154
+ it "works when locked" do
155
+ bundle "lock"
156
+ should_be_locked
157
+
158
+ bundle "exec fizz"
159
+ out.should == "1.0"
160
+ end
161
+ end
162
+
163
+ describe "from gems bundled via :git" do
164
+ before(:each) do
165
+ build_git "fizz_git" do |s|
166
+ s.executables = "fizz_git"
167
+ end
168
+
169
+ install_gemfile <<-G
170
+ gem "fizz_git", :git => "#{lib_path('fizz_git-1.0')}"
171
+ G
172
+ end
173
+
174
+ it "works when unlocked" do
175
+ bundle "exec fizz_git"
176
+ out.should == "1.0"
177
+ end
178
+
179
+ it "works when locked" do
180
+ bundle "lock"
181
+ should_be_locked
182
+ bundle "exec fizz_git"
183
+ out.should == "1.0"
184
+ end
185
+ end
186
+
187
+ describe "from gems bundled via :git with no gemspec" do
188
+ before(:each) do
189
+ build_git "fizz_no_gemspec", :gemspec => false do |s|
190
+ s.executables = "fizz_no_gemspec"
191
+ end
192
+
193
+ install_gemfile <<-G
194
+ gem "fizz_no_gemspec", "1.0", :git => "#{lib_path('fizz_no_gemspec-1.0')}"
195
+ G
196
+ end
197
+
198
+ it "works when unlocked" do
199
+ bundle "exec fizz_no_gemspec"
200
+ out.should == "1.0"
201
+ end
202
+
203
+ it "works when locked" do
204
+ bundle "lock"
205
+ should_be_locked
206
+ bundle "exec fizz_no_gemspec"
207
+ out.should == "1.0"
208
+ end
209
+ end
210
+
211
+ end
212
+
213
+ describe "bundling bundler" do
214
+ before(:each) do
215
+ gemfile <<-G
216
+ source "file://#{gem_repo1}"
217
+ gem "rack"
218
+ G
219
+
220
+ bundle "install --path vendor/bundle --disable-shared-gems"
221
+ end
222
+
223
+ it "does not explode with --disable-shared-gems" do
224
+ bundle "exec bundle check", :exitstatus => true
225
+ exitstatus.should == 0
226
+ end
227
+
228
+ it "does not explode when starting with Bundler.setup" do
229
+ ruby <<-R
230
+ require "rubygems"
231
+ require "bundler"
232
+ Bundler.setup
233
+ puts `bundle check`
234
+ puts $?.exitstatus
235
+ R
236
+
237
+ out.should include("satisfied")
238
+ out.should include("\n0")
239
+ end
240
+ end
241
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Gem::Specification#match_platform" do
4
+ it "does not match platforms other than the gem platform" do
5
+ darwin = gem "lol", "1.0", "platform_specific-1.0-x86-darwin-10"
6
+ darwin.match_platform(pl('java')).should be_false
7
+ end
8
+ end
9
+
10
+ describe "Bundler::GemHelpers#generic" do
11
+ include Bundler::GemHelpers
12
+
13
+ it "converts non-windows platforms into ruby" do
14
+ generic(pl('x86-darwin-10')).should == pl('ruby')
15
+ end
16
+ end
@@ -0,0 +1,128 @@
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 "should fail when there is no gemspec" do
14
+ bundle 'gem test'
15
+ app = bundled_app("test")
16
+ FileUtils.rm(File.join(app.to_s, 'test.gemspec'))
17
+ proc { Bundler::GemHelper.new(app.to_s) }.should raise_error(/Unable to determine name/)
18
+ end
19
+
20
+ it "should fail when there are two gemspecs and the name isn't specified" do
21
+ bundle 'gem test'
22
+ app = bundled_app("test")
23
+ File.open(File.join(app.to_s, 'test2.gemspec'), 'w') {|f| f << ''}
24
+ proc { Bundler::GemHelper.new(app.to_s) }.should raise_error(/Unable to determine name/)
25
+ end
26
+ end
27
+
28
+ context "gem management" do
29
+ def mock_confirm_message(message)
30
+ Bundler.ui.should_receive(:confirm).with(message)
31
+ end
32
+
33
+ def mock_build_message
34
+ mock_confirm_message "test 0.0.1 built to pkg/test-0.0.1.gem"
35
+ end
36
+
37
+ before(:each) do
38
+ bundle 'gem test'
39
+ @app = bundled_app("test")
40
+ @gemspec = File.read("#{@app.to_s}/test.gemspec")
41
+ File.open("#{@app.to_s}/test.gemspec", 'w'){|f| f << @gemspec.gsub('TODO: ', '') }
42
+ @helper = Bundler::GemHelper.new(@app.to_s)
43
+ end
44
+
45
+ it "uses a shell UI for output" do
46
+ Bundler.ui.should be_a(Bundler::UI::Shell)
47
+ end
48
+
49
+ describe 'build' do
50
+ it "builds" do
51
+ mock_build_message
52
+ @helper.build_gem
53
+ bundled_app('test/pkg/test-0.0.1.gem').should exist
54
+ end
55
+
56
+ it "raises an appropriate error when the build fails" do
57
+ # break the gemspec by adding back the TODOs...
58
+ File.open("#{@app.to_s}/test.gemspec", 'w'){|f| f << @gemspec }
59
+ proc { @helper.build_gem }.should raise_error(/TODO/)
60
+ end
61
+ end
62
+
63
+ describe 'install' do
64
+ it "installs" do
65
+ mock_build_message
66
+ mock_confirm_message "test (0.0.1) installed"
67
+ @helper.install_gem
68
+ bundled_app('test/pkg/test-0.0.1.gem').should exist
69
+ %x{gem list}.should include("test (0.0.1)")
70
+ end
71
+
72
+ it "raises an appropriate error when the install fails" do
73
+ @helper.should_receive(:build_gem) do
74
+ # write an invalid gem file, so we can simulate install failure...
75
+ FileUtils.mkdir_p(File.join(@app.to_s, 'pkg'))
76
+ path = "#{@app.to_s}/pkg/test-0.0.1.gem"
77
+ File.open(path, 'w'){|f| f << "not actually a gem"}
78
+ path
79
+ end
80
+ proc { @helper.install_gem }.should raise_error
81
+ end
82
+ end
83
+
84
+ describe 'release' do
85
+ it "shouldn't push if there are uncommitted files" do
86
+ proc { @helper.release_gem }.should raise_error(/files that need to be committed/)
87
+ end
88
+
89
+ it 'raises an appropriate error if there is no git remote' do
90
+ Bundler.ui.stub(:confirm => nil, :error => nil) # silence messages
91
+
92
+ Dir.chdir(gem_repo1) {
93
+ `git init --bare`
94
+ }
95
+ Dir.chdir(@app) {
96
+ `git init`
97
+ `git config user.email "you@example.com"`
98
+ `git config user.name "name"`
99
+ `git commit -a -m "initial commit"`
100
+ }
101
+
102
+ proc { @helper.release_gem }.should raise_error
103
+ end
104
+
105
+ it "releases" do
106
+ mock_build_message
107
+ mock_confirm_message(/Tagged v0.0.1/)
108
+ mock_confirm_message("Pushed git commits and tags")
109
+
110
+ @helper.should_receive(:rubygem_push).with(bundled_app('test/pkg/test-0.0.1.gem').to_s)
111
+
112
+ Dir.chdir(gem_repo1) {
113
+ `git init --bare`
114
+ }
115
+ Dir.chdir(@app) {
116
+ `git init`
117
+ `git config user.email "you@example.com"`
118
+ `git config user.name "name"`
119
+ `git remote add origin file://#{gem_repo1}`
120
+ `git commit -a -m "initial commit"`
121
+ Open3.popen3("git push origin master") # use popen3 to silence output...
122
+ `git commit -a -m "another commit"`
123
+ }
124
+ @helper.release_gem
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,38 @@
1
+ require "spec_helper"
2
+
3
+ describe "bundle help" do
4
+ # Rubygems 1.4+ no longer load gem plugins so this test is no longer needed
5
+ rubygems_under_14 = Gem::Requirement.new("< 1.4").satisfied_by?(Gem::Version.new(Gem::VERSION))
6
+ it "complains if older versions of bundler are installed", :if => rubygems_under_14 do
7
+ system_gems "bundler-0.8.1"
8
+
9
+ bundle "help", :expect_err => true
10
+ err.should == "Please remove older versions of bundler. This can be done by running `gem cleanup bundler`."
11
+ end
12
+
13
+ it "uses groff when available" do
14
+ fake_groff!
15
+
16
+ bundle "help gemfile"
17
+ out.should == %|["-Wall", "-mtty-char", "-mandoc", "-Tascii", "#{root}/lib/bundler/man/gemfile.5"]|
18
+ end
19
+
20
+ it "prefixes bundle commands with bundle- when finding the groff files" do
21
+ fake_groff!
22
+
23
+ bundle "help install"
24
+ out.should == %|["-Wall", "-mtty-char", "-mandoc", "-Tascii", "#{root}/lib/bundler/man/bundle-install"]|
25
+ end
26
+
27
+ it "simply outputs the txt file when there is no groff on the path" do
28
+ kill_path!
29
+
30
+ bundle "help install", :expect_err => true
31
+ out.should =~ /BUNDLE-INSTALL/
32
+ end
33
+
34
+ it "still outputs the old help for commands that do not have man pages yet" do
35
+ bundle "help check"
36
+ out.should include("Check searches the local machine")
37
+ end
38
+ end