rubygems-update 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data.tar.gz.sig +2 -4
- data/ChangeLog +155 -0
- data/Rakefile +20 -5
- data/doc/release_notes/rel_1_3_0.rdoc +125 -0
- data/lib/rubygems.rb +107 -15
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/environment_command.rb +40 -0
- data/lib/rubygems/commands/help_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +15 -0
- data/lib/rubygems/commands/lock_command.rb +15 -6
- data/lib/rubygems/commands/outdated_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +1 -1
- data/lib/rubygems/commands/query_command.rb +14 -9
- data/lib/rubygems/commands/rdoc_command.rb +5 -1
- data/lib/rubygems/commands/specification_command.rb +2 -2
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +23 -14
- data/lib/rubygems/commands/which_command.rb +4 -3
- data/lib/rubygems/config_file.rb +25 -3
- data/lib/rubygems/defaults.rb +42 -11
- data/lib/rubygems/dependency_installer.rb +19 -15
- data/lib/rubygems/doc_manager.rb +162 -115
- data/lib/rubygems/ext/builder.rb +2 -2
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gem_path_searcher.rb +35 -19
- data/lib/rubygems/indexer.rb +15 -6
- data/lib/rubygems/install_update_options.rb +7 -0
- data/lib/rubygems/installer.rb +85 -9
- data/lib/rubygems/local_remote_options.rb +7 -0
- data/lib/rubygems/package/tar_reader.rb +7 -7
- data/lib/rubygems/platform.rb +1 -18
- data/lib/rubygems/remote_fetcher.rb +45 -54
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/source_index.rb +22 -7
- data/lib/rubygems/source_info_cache.rb +9 -0
- data/lib/rubygems/spec_fetcher.rb +18 -20
- data/lib/rubygems/specification.rb +502 -293
- data/lib/rubygems/test_utilities.rb +19 -8
- data/lib/rubygems/uninstaller.rb +60 -26
- data/setup.rb +15 -7
- data/test/gemutilities.rb +84 -0
- data/test/mockgemui.rb +22 -2
- data/test/test_gem.rb +118 -13
- data/test/test_gem_commands_dependency_command.rb +1 -1
- data/test/test_gem_commands_list_command.rb +37 -0
- data/test/test_gem_commands_lock_command.rb +69 -0
- data/test/test_gem_commands_query_command.rb +40 -1
- data/test/test_gem_commands_uninstall_command.rb +60 -0
- data/test/test_gem_config_file.rb +51 -17
- data/test/test_gem_ext_configure_builder.rb +9 -9
- data/test/test_gem_ext_rake_builder.rb +21 -12
- data/test/test_gem_gem_path_searcher.rb +15 -7
- data/test/test_gem_indexer.rb +35 -1
- data/test/test_gem_install_update_options.rb +26 -5
- data/test/test_gem_installer.rb +93 -21
- data/test/test_gem_local_remote_options.rb +12 -0
- data/test/test_gem_platform.rb +6 -13
- data/test/test_gem_remote_fetcher.rb +121 -31
- data/test/test_gem_source_index.rb +74 -21
- data/test/test_gem_source_info_cache.rb +2 -1
- data/test/test_gem_spec_fetcher.rb +13 -3
- data/test/test_gem_specification.rb +13 -7
- data/test/test_gem_uninstaller.rb +25 -2
- metadata +6 -2
- metadata.gz.sig +0 -0
@@ -64,6 +64,54 @@ class TestGemSourceIndex < RubyGemTestCase
|
|
64
64
|
assert_equal a1.author, spec.author
|
65
65
|
end
|
66
66
|
|
67
|
+
def test_self_load_specification_utf_8
|
68
|
+
spec_dir = File.join @gemhome, 'specifications'
|
69
|
+
|
70
|
+
FileUtils.rm_r spec_dir
|
71
|
+
|
72
|
+
FileUtils.mkdir_p spec_dir
|
73
|
+
|
74
|
+
spec_file = File.join spec_dir, "utf-8.gemspec"
|
75
|
+
spec_data = <<-SPEC
|
76
|
+
Gem::Specification.new do |s|
|
77
|
+
s.name = %q{utf}
|
78
|
+
s.version = "8"
|
79
|
+
|
80
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0")
|
81
|
+
s.authors = ["\317\200"]
|
82
|
+
s.date = %q{2008-09-10}
|
83
|
+
s.description = %q{This is a test description}
|
84
|
+
s.email = %q{example@example.com}
|
85
|
+
s.has_rdoc = true
|
86
|
+
s.homepage = %q{http://example.com}
|
87
|
+
s.require_paths = ["lib"]
|
88
|
+
s.rubygems_version = %q{1.2.0}
|
89
|
+
s.summary = %q{this is a summary}
|
90
|
+
|
91
|
+
if s.respond_to? :specification_version then
|
92
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
93
|
+
s.specification_version = 2
|
94
|
+
|
95
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
96
|
+
else
|
97
|
+
end
|
98
|
+
else
|
99
|
+
end
|
100
|
+
end
|
101
|
+
SPEC
|
102
|
+
|
103
|
+
spec_data.force_encoding 'UTF-8'
|
104
|
+
|
105
|
+
File.open spec_file, 'w' do |io| io.write spec_data end
|
106
|
+
|
107
|
+
spec = Gem::SourceIndex.load_specification spec_file
|
108
|
+
|
109
|
+
pi = "\317\200"
|
110
|
+
pi.force_encoding 'UTF-8' if pi.respond_to? :force_encoding
|
111
|
+
|
112
|
+
assert_equal pi, spec.author
|
113
|
+
end if Gem.ruby_version > Gem::Version.new('1.9')
|
114
|
+
|
67
115
|
def test_self_load_specification_exception
|
68
116
|
spec_dir = File.join @gemhome, 'specifications'
|
69
117
|
|
@@ -437,6 +485,27 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
|
|
437
485
|
assert_equal [], missing
|
438
486
|
end
|
439
487
|
|
488
|
+
def test_find_name
|
489
|
+
assert_equal [@a1, @a2], @source_index.find_name('a')
|
490
|
+
assert_equal [@a2], @source_index.find_name('a', '= 2')
|
491
|
+
assert_equal [], @source_index.find_name('bogusstring')
|
492
|
+
assert_equal [], @source_index.find_name('a', '= 3')
|
493
|
+
|
494
|
+
source_index = Gem::SourceIndex.new
|
495
|
+
source_index.add_spec @a1
|
496
|
+
source_index.add_spec @a2
|
497
|
+
|
498
|
+
assert_equal [@a1], source_index.find_name(@a1.name, '= 1')
|
499
|
+
|
500
|
+
r1 = Gem::Requirement.create '= 1'
|
501
|
+
assert_equal [@a1], source_index.find_name(@a1.name, r1)
|
502
|
+
end
|
503
|
+
|
504
|
+
def test_find_name_empty_cache
|
505
|
+
empty_source_index = Gem::SourceIndex.new({})
|
506
|
+
assert_equal [], empty_source_index.find_name("foo")
|
507
|
+
end
|
508
|
+
|
440
509
|
def test_latest_specs
|
441
510
|
p1_ruby = quick_gem 'p', '1'
|
442
511
|
p1_platform = quick_gem 'p', '1' do |spec|
|
@@ -573,28 +642,12 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
|
|
573
642
|
end
|
574
643
|
|
575
644
|
def test_search
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
assert_equal [], @source_index.search('bogusstring')
|
580
|
-
assert_equal [], @source_index.search('a', '= 3')
|
645
|
+
requirement = Gem::Requirement.create '= 9'
|
646
|
+
with_version = Gem::Dependency.new(/^a/, requirement)
|
647
|
+
assert_equal [@a_evil9], @source_index.search(with_version)
|
581
648
|
|
582
|
-
|
583
|
-
|
584
|
-
source_index.add_spec @a2
|
585
|
-
|
586
|
-
assert_equal [@a1], source_index.search(@a1.name, '= 1')
|
587
|
-
|
588
|
-
r1 = Gem::Requirement.create '= 1'
|
589
|
-
assert_equal [@a1], source_index.search(@a1.name, r1)
|
590
|
-
|
591
|
-
dep = Gem::Dependency.new @a1.name, r1
|
592
|
-
assert_equal [@a1], source_index.search(dep)
|
593
|
-
end
|
594
|
-
|
595
|
-
def test_search_empty_cache
|
596
|
-
empty_source_index = Gem::SourceIndex.new({})
|
597
|
-
assert_equal [], empty_source_index.search("foo")
|
649
|
+
with_default = Gem::Dependency.new(/^a/, Gem::Requirement.default)
|
650
|
+
assert_equal [@a1, @a2, @a_evil9], @source_index.search(with_default)
|
598
651
|
end
|
599
652
|
|
600
653
|
def test_search_platform
|
@@ -224,7 +224,8 @@ class TestGemSourceInfoCache < RubyGemTestCase
|
|
224
224
|
|
225
225
|
@sic.set_cache_data @gem_repo => sice
|
226
226
|
latest = @sic.latest_cache_data
|
227
|
-
|
227
|
+
beginning_with_a = Gem::Dependency.new(/^a/, Gem::Requirement.default)
|
228
|
+
gems = latest[@gem_repo].source_index.search(beginning_with_a).map { |s| s.full_name }
|
228
229
|
|
229
230
|
assert_equal %w[a-2 a_evil-9], gems
|
230
231
|
end
|
@@ -67,7 +67,7 @@ class TestGemSpecFetcher < RubyGemTestCase
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def test_fetch_legacy_repo
|
70
|
-
@fetcher.data
|
70
|
+
@fetcher.data.delete "#{@gem_repo}specs.#{Gem.marshal_version}.gz"
|
71
71
|
@fetcher.data["#{@gem_repo}yaml"] = ''
|
72
72
|
util_setup_source_info_cache @a1, @a2
|
73
73
|
|
@@ -259,6 +259,16 @@ RubyGems will revert to legacy indexes degrading performance.
|
|
259
259
|
assert_equal specs, cached_specs
|
260
260
|
end
|
261
261
|
|
262
|
+
def test_list_latest_all
|
263
|
+
specs = @sf.list false
|
264
|
+
|
265
|
+
assert_equal [@latest_specs], specs.values
|
266
|
+
|
267
|
+
specs = @sf.list true
|
268
|
+
|
269
|
+
assert_equal [@specs], specs.values, 'specs file not loaded'
|
270
|
+
end
|
271
|
+
|
262
272
|
def test_load_specs
|
263
273
|
specs = @sf.load_specs @uri, 'specs'
|
264
274
|
|
@@ -294,9 +304,9 @@ RubyGems will revert to legacy indexes degrading performance.
|
|
294
304
|
Marshal.dump @latest_specs, io
|
295
305
|
end
|
296
306
|
|
297
|
-
|
307
|
+
latest_specs = @sf.load_specs @uri, 'latest_specs'
|
298
308
|
|
299
|
-
assert_equal @
|
309
|
+
assert_equal @latest_specs, latest_specs
|
300
310
|
end
|
301
311
|
|
302
312
|
end
|
@@ -500,7 +500,7 @@ end
|
|
500
500
|
end
|
501
501
|
|
502
502
|
def test_has_rdoc_eh
|
503
|
-
|
503
|
+
assert @a1.has_rdoc?
|
504
504
|
end
|
505
505
|
|
506
506
|
def test_hash
|
@@ -634,7 +634,10 @@ end
|
|
634
634
|
|
635
635
|
ruby_code = @a2.to_ruby
|
636
636
|
|
637
|
-
expected =
|
637
|
+
expected = <<-SPEC
|
638
|
+
# -*- encoding: utf-8 -*-
|
639
|
+
|
640
|
+
Gem::Specification.new do |s|
|
638
641
|
s.name = %q{a}
|
639
642
|
s.version = \"2\"
|
640
643
|
|
@@ -654,7 +657,7 @@ end
|
|
654
657
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
655
658
|
s.specification_version = #{Gem::Specification::CURRENT_SPECIFICATION_VERSION}
|
656
659
|
|
657
|
-
if
|
660
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
658
661
|
s.add_runtime_dependency(%q<b>, [\"= 1\"])
|
659
662
|
else
|
660
663
|
s.add_dependency(%q<b>, [\"= 1\"])
|
@@ -663,7 +666,7 @@ end
|
|
663
666
|
s.add_dependency(%q<b>, [\"= 1\"])
|
664
667
|
end
|
665
668
|
end
|
666
|
-
|
669
|
+
SPEC
|
667
670
|
|
668
671
|
assert_equal expected, ruby_code
|
669
672
|
|
@@ -679,7 +682,10 @@ end
|
|
679
682
|
local = Gem::Platform.local
|
680
683
|
expected_platform = "[#{local.cpu.inspect}, #{local.os.inspect}, #{local.version.inspect}]"
|
681
684
|
|
682
|
-
expected =
|
685
|
+
expected = <<-SPEC
|
686
|
+
# -*- encoding: utf-8 -*-
|
687
|
+
|
688
|
+
Gem::Specification.new do |s|
|
683
689
|
s.name = %q{a}
|
684
690
|
s.version = \"1\"
|
685
691
|
s.platform = Gem::Platform.new(#{expected_platform})
|
@@ -706,7 +712,7 @@ end
|
|
706
712
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
707
713
|
s.specification_version = 2
|
708
714
|
|
709
|
-
if
|
715
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
710
716
|
s.add_runtime_dependency(%q<rake>, [\"> 0.4\"])
|
711
717
|
s.add_runtime_dependency(%q<jabber4r>, [\"> 0.0.0\"])
|
712
718
|
s.add_runtime_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
|
@@ -721,7 +727,7 @@ end
|
|
721
727
|
s.add_dependency(%q<pqa>, [\"> 0.4\", \"<= 0.6\"])
|
722
728
|
end
|
723
729
|
end
|
724
|
-
|
730
|
+
SPEC
|
725
731
|
|
726
732
|
assert_equal expected, ruby_code
|
727
733
|
|
@@ -10,8 +10,10 @@ class TestGemUninstaller < GemInstallerTestCase
|
|
10
10
|
ui = MockGemUi.new
|
11
11
|
util_setup_gem ui
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
build_rake_in do
|
14
|
+
use_ui ui do
|
15
|
+
@installer.install
|
16
|
+
end
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
@@ -60,5 +62,26 @@ class TestGemUninstaller < GemInstallerTestCase
|
|
60
62
|
assert_equal true, uninstaller.path_ok?(@spec)
|
61
63
|
end
|
62
64
|
|
65
|
+
def test_uninstall
|
66
|
+
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
67
|
+
|
68
|
+
gem_dir = File.join @gemhome, 'gems', @spec.full_name
|
69
|
+
|
70
|
+
Gem.pre_uninstall do
|
71
|
+
assert File.exist?(gem_dir), 'gem_dir should exist'
|
72
|
+
end
|
73
|
+
|
74
|
+
Gem.post_uninstall do
|
75
|
+
assert !File.exist?(gem_dir), 'gem_dir should not exist'
|
76
|
+
end
|
77
|
+
|
78
|
+
uninstaller.uninstall
|
79
|
+
|
80
|
+
assert !File.exist?(gem_dir)
|
81
|
+
|
82
|
+
assert_same uninstaller, @pre_uninstall_hook_arg
|
83
|
+
assert_same uninstaller, @post_uninstall_hook_arg
|
84
|
+
end
|
85
|
+
|
63
86
|
end
|
64
87
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -32,7 +32,7 @@ cert_chain:
|
|
32
32
|
x52qPcexcYZR7w==
|
33
33
|
-----END CERTIFICATE-----
|
34
34
|
|
35
|
-
date: 2008-
|
35
|
+
date: 2008-09-25 00:00:00 -07:00
|
36
36
|
default_executable:
|
37
37
|
dependencies: []
|
38
38
|
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- doc/release_notes/rel_1_1_0.rdoc
|
80
80
|
- doc/release_notes/rel_1_1_1.rdoc
|
81
81
|
- doc/release_notes/rel_1_2_0.rdoc
|
82
|
+
- doc/release_notes/rel_1_3_0.rdoc
|
82
83
|
- lib/rbconfig/datadir.rb
|
83
84
|
- lib/rubygems/builder.rb
|
84
85
|
- lib/rubygems/command.rb
|
@@ -204,6 +205,8 @@ files:
|
|
204
205
|
- test/test_gem_commands_fetch_command.rb
|
205
206
|
- test/test_gem_commands_generate_index_command.rb
|
206
207
|
- test/test_gem_commands_install_command.rb
|
208
|
+
- test/test_gem_commands_list_command.rb
|
209
|
+
- test/test_gem_commands_lock_command.rb
|
207
210
|
- test/test_gem_commands_mirror_command.rb
|
208
211
|
- test/test_gem_commands_outdated_command.rb
|
209
212
|
- test/test_gem_commands_pristine_command.rb
|
@@ -212,6 +215,7 @@ files:
|
|
212
215
|
- test/test_gem_commands_sources_command.rb
|
213
216
|
- test/test_gem_commands_specification_command.rb
|
214
217
|
- test/test_gem_commands_stale_command.rb
|
218
|
+
- test/test_gem_commands_uninstall_command.rb
|
215
219
|
- test/test_gem_commands_unpack_command.rb
|
216
220
|
- test/test_gem_commands_update_command.rb
|
217
221
|
- test/test_gem_config_file.rb
|
metadata.gz.sig
CHANGED
Binary file
|