rubygems-update 1.5.3 → 1.6.0

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.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (79) hide show
  1. data.tar.gz.sig +2 -1
  2. data/History.txt +60 -9
  3. data/Manifest.txt +1 -1
  4. data/Rakefile +0 -2
  5. data/lib/rubygems.rb +142 -65
  6. data/lib/rubygems/commands/owner_command.rb +3 -2
  7. data/lib/rubygems/commands/pristine_command.rb +5 -3
  8. data/lib/rubygems/commands/push_command.rb +8 -4
  9. data/lib/rubygems/commands/setup_command.rb +1 -2
  10. data/lib/rubygems/commands/uninstall_command.rb +5 -0
  11. data/lib/rubygems/commands/unpack_command.rb +10 -16
  12. data/lib/rubygems/config_file.rb +12 -5
  13. data/lib/rubygems/custom_require.rb +27 -7
  14. data/lib/rubygems/dependency.rb +33 -8
  15. data/lib/rubygems/dependency_installer.rb +21 -6
  16. data/lib/rubygems/dependency_list.rb +35 -3
  17. data/lib/rubygems/doc_manager.rb +6 -4
  18. data/lib/rubygems/gem_path_searcher.rb +45 -1
  19. data/lib/rubygems/gemcutter_utilities.rb +33 -0
  20. data/lib/rubygems/indexer.rb +1 -0
  21. data/lib/rubygems/installer.rb +11 -7
  22. data/lib/rubygems/installer_test_case.rb +23 -15
  23. data/lib/rubygems/mock_gem_ui.rb +1 -1
  24. data/lib/rubygems/remote_fetcher.rb +29 -10
  25. data/lib/rubygems/requirement.rb +1 -1
  26. data/lib/rubygems/security.rb +1 -0
  27. data/lib/rubygems/source_index.rb +3 -2
  28. data/lib/rubygems/spec_fetcher.rb +3 -1
  29. data/lib/rubygems/specification.rb +54 -12
  30. data/lib/rubygems/test_case.rb +99 -28
  31. data/lib/rubygems/test_utilities.rb +11 -1
  32. data/lib/rubygems/uninstaller.rb +22 -11
  33. data/lib/rubygems/user_interaction.rb +50 -29
  34. data/lib/rubygems/validator.rb +1 -1
  35. data/test/rubygems/fix_openssl_warnings.rb +12 -0
  36. data/test/rubygems/plugin/load/rubygems_plugin.rb +3 -1
  37. data/test/rubygems/test_gem.rb +384 -38
  38. data/test/rubygems/test_gem_builder.rb +1 -1
  39. data/test/rubygems/test_gem_command_manager.rb +2 -2
  40. data/test/rubygems/test_gem_commands_build_command.rb +1 -1
  41. data/test/rubygems/test_gem_commands_cert_command.rb +2 -1
  42. data/test/rubygems/test_gem_commands_dependency_command.rb +6 -5
  43. data/test/rubygems/test_gem_commands_fetch_command.rb +4 -4
  44. data/test/rubygems/test_gem_commands_install_command.rb +21 -18
  45. data/test/rubygems/test_gem_commands_lock_command.rb +1 -1
  46. data/test/rubygems/test_gem_commands_outdated_command.rb +2 -5
  47. data/test/rubygems/test_gem_commands_owner_command.rb +42 -0
  48. data/test/rubygems/test_gem_commands_pristine_command.rb +28 -8
  49. data/test/rubygems/test_gem_commands_push_command.rb +31 -5
  50. data/test/rubygems/test_gem_commands_specification_command.rb +8 -8
  51. data/test/rubygems/test_gem_commands_stale_command.rb +4 -2
  52. data/test/rubygems/test_gem_commands_uninstall_command.rb +23 -4
  53. data/test/rubygems/test_gem_commands_unpack_command.rb +10 -8
  54. data/test/rubygems/test_gem_commands_update_command.rb +16 -13
  55. data/test/rubygems/test_gem_commands_which_command.rb +1 -1
  56. data/test/rubygems/test_gem_config_file.rb +14 -0
  57. data/test/rubygems/test_gem_dependency.rb +39 -0
  58. data/test/rubygems/test_gem_dependency_installer.rb +213 -92
  59. data/test/rubygems/test_gem_dependency_list.rb +37 -17
  60. data/test/rubygems/test_gem_doc_manager.rb +5 -4
  61. data/test/rubygems/test_gem_format.rb +2 -2
  62. data/test/rubygems/test_gem_gemcutter_utilities.rb +48 -0
  63. data/test/rubygems/test_gem_indexer.rb +11 -10
  64. data/test/rubygems/test_gem_install_update_options.rb +0 -2
  65. data/test/rubygems/test_gem_installer.rb +151 -78
  66. data/test/rubygems/test_gem_package_tar_output.rb +3 -0
  67. data/test/rubygems/test_gem_remote_fetcher.rb +23 -14
  68. data/test/rubygems/test_gem_requirement.rb +4 -0
  69. data/test/rubygems/test_gem_security.rb +1 -0
  70. data/test/rubygems/test_gem_source_index.rb +17 -16
  71. data/test/rubygems/test_gem_spec_fetcher.rb +6 -1
  72. data/test/rubygems/test_gem_specification.rb +81 -31
  73. data/test/rubygems/test_gem_stream_ui.rb +11 -1
  74. data/test/rubygems/test_gem_uninstaller.rb +70 -10
  75. data/test/rubygems/test_gem_validator.rb +1 -1
  76. data/test/rubygems/test_kernel.rb +1 -1
  77. metadata +7 -7
  78. metadata.gz.sig +0 -0
  79. data/ChangeLog +0 -5811
@@ -49,6 +49,9 @@ class TestGemPackageTarOutput < Gem::Package::TarTestCase
49
49
 
50
50
  if defined? OpenSSL then
51
51
  def test_self_open_signed
52
+ @private_key = File.expand_path('test/rubygems/private_key.pem', @@project_dir)
53
+ @public_cert = File.expand_path('test/rubygems/public_cert.pem', @@project_dir)
54
+
52
55
  signer = Gem::Security::Signer.new @private_key, [@public_cert]
53
56
 
54
57
  open @file, 'wb' do |tar_io|
@@ -93,9 +93,10 @@ gems:
93
93
 
94
94
  # REFACTOR: copied from test_gem_dependency_installer.rb
95
95
  @gems_dir = File.join @tempdir, 'gems'
96
- @cache_dir = File.join @gemhome, 'cache'
96
+ @cache_dir = Gem.cache_dir(@gemhome)
97
97
  FileUtils.mkdir @gems_dir
98
98
 
99
+ # TODO: why does the remote fetcher need it written to disk?
99
100
  @a1, @a1_gem = util_gem 'a', '1' do |s| s.executables << 'a_bin' end
100
101
 
101
102
  Gem::RemoteFetcher.fetcher = nil
@@ -202,7 +203,7 @@ gems:
202
203
 
203
204
  fetcher = util_fuck_with_fetcher a1_data
204
205
 
205
- a1_cache_gem = File.join(@gemhome, 'cache', @a1.file_name)
206
+ a1_cache_gem = Gem.cache_gem(@a1.file_name, @gemhome)
206
207
  assert_equal a1_cache_gem, fetcher.download(@a1, 'http://gems.example.com')
207
208
  assert_equal("http://gems.example.com/gems/a-1.gem",
208
209
  fetcher.instance_variable_get(:@test_arg).to_s)
@@ -214,7 +215,7 @@ gems:
214
215
 
215
216
  inst = Gem::RemoteFetcher.fetcher
216
217
 
217
- assert_equal File.join(@gemhome, 'cache', @a1.file_name),
218
+ assert_equal Gem.cache_gem(@a1.file_name, @gemhome),
218
219
  inst.download(@a1, 'http://gems.example.com')
219
220
  end
220
221
 
@@ -227,7 +228,7 @@ gems:
227
228
  inst = Gem::RemoteFetcher.fetcher
228
229
  end
229
230
 
230
- assert_equal File.join(@gemhome, 'cache', @a1.file_name),
231
+ assert_equal Gem.cache_gem(@a1.file_name, @gemhome),
231
232
  inst.download(@a1, local_path)
232
233
  end
233
234
 
@@ -242,7 +243,7 @@ gems:
242
243
  inst = Gem::RemoteFetcher.fetcher
243
244
  end
244
245
 
245
- assert_equal File.join(@gemhome, 'cache', @a1.file_name),
246
+ assert_equal Gem.cache_gem(@a1.file_name, @gemhome),
246
247
  inst.download(@a1, local_path)
247
248
  end
248
249
 
@@ -256,7 +257,7 @@ gems:
256
257
 
257
258
  install_dir = File.join @tempdir, 'more_gems'
258
259
 
259
- a1_cache_gem = File.join install_dir, 'cache', @a1.file_name
260
+ a1_cache_gem = Gem.cache_gem(@a1.file_name, install_dir)
260
261
  FileUtils.mkdir_p(File.dirname(a1_cache_gem))
261
262
  actual = fetcher.download(@a1, 'http://gems.example.com', install_dir)
262
263
 
@@ -272,7 +273,7 @@ gems:
272
273
  FileUtils.mv @a1_gem, @tempdir
273
274
  local_path = File.join @tempdir, @a1.file_name
274
275
  inst = nil
275
- File.chmod 0555, File.join(@gemhome, 'cache')
276
+ File.chmod 0555, Gem.cache_dir(@gemhome)
276
277
 
277
278
  Dir.chdir @tempdir do
278
279
  inst = Gem::RemoteFetcher.fetcher
@@ -281,19 +282,19 @@ gems:
281
282
  assert_equal File.join(@tempdir, @a1.file_name),
282
283
  inst.download(@a1, local_path)
283
284
  ensure
284
- File.chmod 0755, File.join(@gemhome, 'cache')
285
+ File.chmod 0755, Gem.cache_dir(@gemhome)
285
286
  end
286
287
 
287
288
  def test_download_read_only
288
- File.chmod 0555, File.join(@gemhome, 'cache')
289
+ File.chmod 0555, Gem.cache_dir(@gemhome)
289
290
  File.chmod 0555, File.join(@gemhome)
290
291
 
291
292
  fetcher = util_fuck_with_fetcher File.read(@a1_gem)
292
293
  fetcher.download(@a1, 'http://gems.example.com')
293
- assert File.exist?(File.join(Gem.user_dir, 'cache', @a1.file_name))
294
+ assert File.exist?(Gem.cache_gem(@a1.file_name, Gem.user_dir))
294
295
  ensure
295
- File.chmod 0755, File.join(@gemhome)
296
- File.chmod 0755, File.join(@gemhome, 'cache')
296
+ File.chmod 0755, @gemhome
297
+ File.chmod 0755, Gem.cache_dir(@gemhome)
297
298
  end
298
299
  end
299
300
 
@@ -312,7 +313,7 @@ gems:
312
313
 
313
314
  fetcher = util_fuck_with_fetcher e1_data, :blow_chunks
314
315
 
315
- e1_cache_gem = File.join(@gemhome, 'cache', e1.file_name)
316
+ e1_cache_gem = Gem.cache_gem(e1.file_name, @gemhome)
316
317
 
317
318
  assert_equal e1_cache_gem, fetcher.download(e1, 'http://gems.example.com')
318
319
 
@@ -330,7 +331,7 @@ gems:
330
331
  inst = Gem::RemoteFetcher.fetcher
331
332
  end
332
333
 
333
- cache_path = File.join @gemhome, 'cache', @a1.file_name
334
+ cache_path = Gem.cache_gem(@a1.file_name, @gemhome)
334
335
  FileUtils.mv local_path, cache_path
335
336
 
336
337
  gem = Gem::Format.from_file_by_path cache_path
@@ -738,5 +739,13 @@ gems:
738
739
  end
739
740
  end
740
741
 
742
+ def test_correct_for_windows_path
743
+ path = "/C:/WINDOWS/Temp/gems"
744
+ assert_equal "C:/WINDOWS/Temp/gems", @fetcher.correct_for_windows_path(path)
745
+
746
+ path = "/home/skillet"
747
+ assert_equal "/home/skillet", @fetcher.correct_for_windows_path(path)
748
+ end
749
+
741
750
  end
742
751
 
@@ -187,11 +187,15 @@ class TestGemRequirement < Gem::TestCase
187
187
  assert_satisfied_by " ", "> 0.a "
188
188
  assert_satisfied_by "", " > 0.a"
189
189
  assert_satisfied_by "3.1", "< 3.2.rc1"
190
+
190
191
  assert_satisfied_by "3.2.0", "> 3.2.0.rc1"
191
192
  assert_satisfied_by "3.2.0.rc2", "> 3.2.0.rc1"
193
+
192
194
  assert_satisfied_by "3.0.rc2", "< 3.0"
193
195
  assert_satisfied_by "3.0.rc2", "< 3.0.0"
194
196
  assert_satisfied_by "3.0.rc2", "< 3.0.1"
197
+
198
+ assert_satisfied_by "3.0.rc2", "> 0"
195
199
  end
196
200
 
197
201
  def test_illformed_requirements
@@ -1,5 +1,6 @@
1
1
  require 'rubygems/test_case'
2
2
  require 'rubygems/security'
3
+ require 'rubygems/fix_openssl_warnings' if RUBY_VERSION < "1.9"
3
4
 
4
5
  class TestGemSecurity < Gem::TestCase
5
6
 
@@ -17,7 +17,7 @@ class TestGemSourceIndex < Gem::TestCase
17
17
 
18
18
  FileUtils.mkdir_p spec_dir
19
19
 
20
- a1 = quick_gem 'a', '1' do |spec| spec.author = 'author 1' end
20
+ a1 = quick_spec 'a', '1' do |spec| spec.author = 'author 1' end
21
21
 
22
22
  spec_file = File.join spec_dir, a1.spec_name
23
23
 
@@ -38,7 +38,7 @@ class TestGemSourceIndex < Gem::TestCase
38
38
 
39
39
  FileUtils.mkdir_p spec_dir
40
40
 
41
- a1 = quick_gem 'a', '1' do |spec| spec.author = 'author 1' end
41
+ a1 = quick_spec 'a', '1' do |spec| spec.author = 'author 1' end
42
42
 
43
43
  spec_file = File.join spec_dir, a1.spec_name
44
44
 
@@ -208,24 +208,24 @@ end
208
208
  end
209
209
 
210
210
  def test_latest_specs
211
- p1_ruby = quick_gem 'p', '1'
212
- p1_platform = quick_gem 'p', '1' do |spec|
211
+ p1_ruby = quick_spec 'p', '1'
212
+ p1_platform = quick_spec 'p', '1' do |spec|
213
213
  spec.platform = Gem::Platform::CURRENT
214
214
  end
215
215
 
216
- a1_platform = quick_gem @a1.name, (@a1.version) do |s|
216
+ a1_platform = quick_spec @a1.name, (@a1.version) do |s|
217
217
  s.platform = Gem::Platform.new 'x86-my_platform1'
218
218
  end
219
219
 
220
- a2_platform = quick_gem @a2.name, (@a2.version) do |s|
220
+ a2_platform = quick_spec @a2.name, (@a2.version) do |s|
221
221
  s.platform = Gem::Platform.new 'x86-my_platform1'
222
222
  end
223
223
 
224
- a2_platform_other = quick_gem @a2.name, (@a2.version) do |s|
224
+ a2_platform_other = quick_spec @a2.name, (@a2.version) do |s|
225
225
  s.platform = Gem::Platform.new 'x86-other_platform1'
226
226
  end
227
227
 
228
- a3_platform_other = quick_gem @a2.name, (@a2.version.bump) do |s|
228
+ a3_platform_other = quick_spec @a2.name, (@a2.version.bump) do |s|
229
229
  s.platform = Gem::Platform.new 'x86-other_platform1'
230
230
  end
231
231
 
@@ -260,8 +260,8 @@ end
260
260
  FileUtils.mkdir_p spec_dir1
261
261
  FileUtils.mkdir_p spec_dir2
262
262
 
263
- a1 = quick_gem 'a', '1' do |spec| spec.author = 'author 1' end
264
- a2 = quick_gem 'a', '1' do |spec| spec.author = 'author 2' end
263
+ a1 = quick_spec 'a', '1' do |spec| spec.author = 'author 1' end
264
+ a2 = quick_spec 'a', '1' do |spec| spec.author = 'author 2' end
265
265
 
266
266
  File.open File.join(spec_dir1, a1.spec_name), 'w' do |fp|
267
267
  fp.write a1.to_ruby
@@ -281,12 +281,12 @@ end
281
281
 
282
282
  assert_equal [], @source_index.outdated
283
283
 
284
- updated = quick_gem @a2.name, (@a2.version.bump)
284
+ updated = quick_spec @a2.name, (@a2.version.bump)
285
285
  util_setup_spec_fetcher updated
286
286
 
287
287
  assert_equal [updated.name], @source_index.outdated
288
288
 
289
- updated_platform = quick_gem @a2.name, (updated.version.bump) do |s|
289
+ updated_platform = quick_spec @a2.name, (updated.version.bump) do |s|
290
290
  s.platform = Gem::Platform.new 'x86-other_platform1'
291
291
  end
292
292
 
@@ -296,10 +296,11 @@ end
296
296
  end
297
297
 
298
298
  def test_prerelease_specs_kept_in_right_place
299
- gem_a1_alpha = quick_gem 'abba', '1.a'
299
+ gem_a1_alpha = quick_spec 'abba', '1.a'
300
300
  @source_index.add_spec gem_a1_alpha
301
301
 
302
302
  refute @source_index.latest_specs.include?(gem_a1_alpha)
303
+ assert @source_index.latest_specs(true).include?(gem_a1_alpha)
303
304
  assert @source_index.find_name(gem_a1_alpha.full_name).empty?
304
305
  assert @source_index.prerelease_specs.include?(gem_a1_alpha)
305
306
  end
@@ -357,11 +358,11 @@ end
357
358
  def test_search_platform
358
359
  util_set_arch 'x86-my_platform1'
359
360
 
360
- a1 = quick_gem 'a', '1'
361
- a1_mine = quick_gem 'a', '1' do |s|
361
+ a1 = quick_spec 'a', '1'
362
+ a1_mine = quick_spec 'a', '1' do |s|
362
363
  s.platform = Gem::Platform.new 'x86-my_platform1'
363
364
  end
364
- a1_other = quick_gem 'a', '1' do |s|
365
+ a1_other = quick_spec 'a', '1' do |s|
365
366
  s.platform = Gem::Platform.new 'x86-other_platform1'
366
367
  end
367
368
 
@@ -10,7 +10,7 @@ class TestGemSpecFetcher < Gem::TestCase
10
10
 
11
11
  util_setup_fake_fetcher
12
12
 
13
- @a_pre = quick_gem 'a', '1.a'
13
+ @a_pre = quick_spec 'a', '1.a'
14
14
  @source_index.add_spec @pl1
15
15
  @source_index.add_spec @a_pre
16
16
 
@@ -406,5 +406,10 @@ class TestGemSpecFetcher < Gem::TestCase
406
406
  assert_equal @latest_specs, latest_specs
407
407
  end
408
408
 
409
+ def test_cache_dir_escapes_windows_paths
410
+ uri = URI.parse("file:///C:/WINDOWS/Temp/gem_repo")
411
+ cache_dir = @sf.cache_dir(uri).gsub(@sf.dir, '')
412
+ assert cache_dir !~ /:/, "#{cache_dir} should not contain a :"
413
+ end
409
414
  end
410
415
 
@@ -40,6 +40,7 @@ end
40
40
  def setup
41
41
  super
42
42
 
43
+ # TODO: there is no reason why the spec tests need to write to disk
43
44
  @a1 = quick_gem 'a', '1' do |s|
44
45
  s.executable = 'exec'
45
46
  s.extensions << 'ext/a/extconf.rb'
@@ -295,7 +296,7 @@ end
295
296
  end
296
297
 
297
298
  def test_add_dependency_with_explicit_type
298
- gem = quick_gem "awesome", "1.0" do |awesome|
299
+ gem = quick_spec "awesome", "1.0" do |awesome|
299
300
  awesome.add_development_dependency "monkey"
300
301
  end
301
302
 
@@ -365,25 +366,18 @@ end
365
366
  end
366
367
 
367
368
  def test_dependencies
368
- rake = Gem::Dependency.new 'rake', '> 0.4'
369
- jabber = Gem::Dependency.new 'jabber4r', '> 0.0.0'
370
- pqa = Gem::Dependency.new 'pqa', ['> 0.4', '<= 0.6']
371
-
372
- assert_equal [rake, jabber, pqa], @a1.dependencies
369
+ util_setup_deps
370
+ assert_equal [@bonobo, @monkey], @gem.dependencies
373
371
  end
374
372
 
375
- def test_dependencies_scoped_by_type
376
- gem = quick_gem "awesome", "1.0" do |awesome|
377
- awesome.add_runtime_dependency "bonobo", []
378
- awesome.add_development_dependency "monkey", []
379
- end
380
-
381
- bonobo = Gem::Dependency.new("bonobo", [])
382
- monkey = Gem::Dependency.new("monkey", [], :development)
373
+ def test_runtime_dependencies
374
+ util_setup_deps
375
+ assert_equal [@bonobo], @gem.runtime_dependencies
376
+ end
383
377
 
384
- assert_equal([bonobo, monkey], gem.dependencies)
385
- assert_equal([bonobo], gem.runtime_dependencies)
386
- assert_equal([monkey], gem.development_dependencies)
378
+ def test_development_dependencies
379
+ util_setup_deps
380
+ assert_equal [@monkey], @gem.development_dependencies
387
381
  end
388
382
 
389
383
  def test_description
@@ -391,8 +385,8 @@ end
391
385
  end
392
386
 
393
387
  def test_eql_eh
394
- g1 = quick_gem 'gem'
395
- g2 = quick_gem 'gem'
388
+ g1 = quick_spec 'gem'
389
+ g2 = quick_spec 'gem'
396
390
 
397
391
  assert_equal g1, g2
398
392
  assert_equal g1.hash, g2.hash
@@ -691,7 +685,7 @@ end
691
685
  end
692
686
 
693
687
  def test_prerelease_spec_adds_required_rubygems_version
694
- @prerelease = quick_gem('tardis', '2.2.0.a')
688
+ @prerelease = quick_spec('tardis', '2.2.0.a')
695
689
  refute @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.3.1'))
696
690
  assert @prerelease.required_rubygems_version.satisfied_by?(Gem::Version.new('1.4.0'))
697
691
  end
@@ -717,8 +711,8 @@ end
717
711
  end
718
712
 
719
713
  def test_spaceship_name
720
- s1 = quick_gem 'a', '1'
721
- s2 = quick_gem 'b', '1'
714
+ s1 = quick_spec 'a', '1'
715
+ s2 = quick_spec 'b', '1'
722
716
 
723
717
  assert_equal(-1, (s1 <=> s2))
724
718
  assert_equal( 0, (s1 <=> s1))
@@ -726,8 +720,8 @@ end
726
720
  end
727
721
 
728
722
  def test_spaceship_platform
729
- s1 = quick_gem 'a', '1'
730
- s2 = quick_gem 'a', '1' do |s|
723
+ s1 = quick_spec 'a', '1'
724
+ s2 = quick_spec 'a', '1' do |s|
731
725
  s.platform = Gem::Platform.new 'x86-my_platform1'
732
726
  end
733
727
 
@@ -737,8 +731,8 @@ end
737
731
  end
738
732
 
739
733
  def test_spaceship_version
740
- s1 = quick_gem 'a', '1'
741
- s2 = quick_gem 'a', '2'
734
+ s1 = quick_spec 'a', '1'
735
+ s2 = quick_spec 'a', '2'
742
736
 
743
737
  assert_equal( -1, (s1 <=> s2))
744
738
  assert_equal( 0, (s1 <=> s1))
@@ -804,6 +798,54 @@ end
804
798
  assert_equal @a2, same_spec
805
799
  end
806
800
 
801
+ def test_to_ruby_for_cache
802
+ @a2.add_runtime_dependency 'b', '1'
803
+ @a2.dependencies.first.instance_variable_set :@type, nil
804
+ @a2.required_rubygems_version = Gem::Requirement.new '> 0'
805
+
806
+ # cached specs do not have spec.files populated:
807
+ ruby_code = @a2.to_ruby_for_cache
808
+
809
+ expected = <<-SPEC
810
+ # -*- encoding: utf-8 -*-
811
+
812
+ Gem::Specification.new do |s|
813
+ s.name = %q{a}
814
+ s.version = \"2\"
815
+
816
+ s.required_rubygems_version = Gem::Requirement.new(\"> 0\") if s.respond_to? :required_rubygems_version=
817
+ s.authors = [\"A User\"]
818
+ s.date = %q{#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}}
819
+ s.description = %q{This is a test description}
820
+ s.email = %q{example@example.com}
821
+ s.homepage = %q{http://example.com}
822
+ s.require_paths = [\"lib\"]
823
+ s.rubygems_version = %q{#{Gem::VERSION}}
824
+ s.summary = %q{this is a summary}
825
+
826
+ if s.respond_to? :specification_version then
827
+ s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
828
+
829
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
830
+ s.add_runtime_dependency(%q<b>, [\"= 1\"])
831
+ else
832
+ s.add_dependency(%q<b>, [\"= 1\"])
833
+ end
834
+ else
835
+ s.add_dependency(%q<b>, [\"= 1\"])
836
+ end
837
+ end
838
+ SPEC
839
+
840
+ assert_equal expected, ruby_code
841
+
842
+ same_spec = eval ruby_code
843
+
844
+ # cached specs do not have spec.files populated:
845
+ @a2.files = []
846
+ assert_equal @a2, same_spec
847
+ end
848
+
807
849
  def test_to_ruby_fancy
808
850
  @a1.platform = Gem::Platform.local
809
851
  ruby_code = @a1.to_ruby
@@ -843,16 +885,16 @@ Gem::Specification.new do |s|
843
885
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
844
886
  s.add_runtime_dependency(%q<rake>, [\"> 0.4\"])
845
887
  s.add_runtime_dependency(%q<jabber4r>, [\"> 0.0.0\"])
846
- s.add_runtime_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
888
+ s.add_runtime_dependency(%q<pqa>, [\"<= 0.6\", \"> 0.4\"])
847
889
  else
848
890
  s.add_dependency(%q<rake>, [\"> 0.4\"])
849
891
  s.add_dependency(%q<jabber4r>, [\"> 0.0.0\"])
850
- s.add_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
892
+ s.add_dependency(%q<pqa>, [\"<= 0.6\", \"> 0.4\"])
851
893
  end
852
894
  else
853
895
  s.add_dependency(%q<rake>, [\"> 0.4\"])
854
896
  s.add_dependency(%q<jabber4r>, [\"> 0.0.0\"])
855
- s.add_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
897
+ s.add_dependency(%q<pqa>, [\"<= 0.6\", \"> 0.4\"])
856
898
  end
857
899
  end
858
900
  SPEC
@@ -1262,6 +1304,16 @@ end
1262
1304
  specfile.delete
1263
1305
  end
1264
1306
 
1307
+ def util_setup_deps
1308
+ @gem = quick_spec "awesome", "1.0" do |awesome|
1309
+ awesome.add_runtime_dependency "bonobo", []
1310
+ awesome.add_development_dependency "monkey", []
1311
+ end
1312
+
1313
+ @bonobo = Gem::Dependency.new("bonobo", [])
1314
+ @monkey = Gem::Dependency.new("monkey", [], :development)
1315
+ end
1316
+
1265
1317
  def util_setup_validate
1266
1318
  Dir.chdir @tempdir do
1267
1319
  FileUtils.mkdir_p File.join('ext', 'a')
@@ -1273,6 +1325,4 @@ end
1273
1325
  FileUtils.touch File.join('test', 'suite.rb')
1274
1326
  end
1275
1327
  end
1276
-
1277
1328
  end
1278
-