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,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