rubygems-update 1.2.0 → 1.3.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.
- 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
|