rubygems-update 1.5.0 → 1.5.2
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 +0 -0
- data/.autotest +8 -4
- data/History.txt +30 -1
- data/Manifest.txt +1 -0
- data/README.rdoc +0 -16
- data/Rakefile +3 -35
- data/UPGRADING.rdoc +12 -1
- data/bin/gem +1 -1
- data/cruise_config.rb +3 -1
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +2 -8
- data/lib/rubygems/commands/update_command.rb +85 -52
- data/lib/rubygems/package/tar_reader/entry.rb +2 -1
- data/lib/rubygems/spec_fetcher.rb +1 -1
- data/lib/rubygems/specification.rb +10 -7
- data/lib/rubygems/test_case.rb +12 -15
- data/lib/rubygems/user_interaction.rb +5 -4
- data/test/rubygems/test_gem_commands_update_command.rb +181 -2
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_specification.rb +10 -0
- metadata +11 -27
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/.autotest
CHANGED
@@ -4,6 +4,7 @@ require 'autotest/restart'
|
|
4
4
|
|
5
5
|
Autotest.add_hook :initialize do |at|
|
6
6
|
at.testlib = 'minitest/autorun'
|
7
|
+
at.unit_diff = "cat -u"
|
7
8
|
|
8
9
|
at.add_exception %r%/\.git/%
|
9
10
|
at.add_exception %r%/\.svn/%
|
@@ -25,9 +26,12 @@ Autotest.add_hook :initialize do |at|
|
|
25
26
|
at.files_matching %r%^test/rubygems/test_(.*)\.rb$%
|
26
27
|
end
|
27
28
|
|
28
|
-
# at.add_mapping %r%^test/support/(.*).rb$% do |_, m|
|
29
|
-
# files_matching %r%^test/test_(.*)\.rb%%
|
30
|
-
# end
|
31
|
-
|
32
29
|
at.find_directories = ARGV unless ARGV.empty?
|
33
30
|
end
|
31
|
+
|
32
|
+
class Autotest
|
33
|
+
alias :old_path_to_classname :path_to_classname
|
34
|
+
def path_to_classname s
|
35
|
+
old_path_to_classname(s.sub(/test.rubygems.test_/, ""))
|
36
|
+
end
|
37
|
+
end
|
data/History.txt
CHANGED
@@ -1,4 +1,33 @@
|
|
1
|
-
=== 1.5.
|
1
|
+
=== 1.5.2 / 2011-02-10
|
2
|
+
|
3
|
+
NOTE: RubyGems 1.5.0 and 1.5.1 have a broken <tt>gem update --system</tt>.
|
4
|
+
|
5
|
+
To upgrade you'll need to use the manual upgrade recipe. Using sudo/su as
|
6
|
+
appropriate:
|
7
|
+
|
8
|
+
$ gem install rubygems-update
|
9
|
+
$ update_rubygems
|
10
|
+
|
11
|
+
Bug Fixes:
|
12
|
+
|
13
|
+
* Fixed <tt>gem update --system</tt>. RubyGems can now update itself again.
|
14
|
+
|
15
|
+
=== 1.5.1 / 2011-02-09
|
16
|
+
|
17
|
+
Minor Enhancement:
|
18
|
+
|
19
|
+
* Added ability to do gem update --system X.Y.Z.
|
20
|
+
|
21
|
+
Bug Fixes:
|
22
|
+
|
23
|
+
* Scrub !!null YAML from 1.9.2 (install and build).
|
24
|
+
* Added missing requires for user_interaction.
|
25
|
+
* Wrote option processing tests for gem update.
|
26
|
+
* Updated upgrading doco for new gem update --system option.
|
27
|
+
* Fixed SilentUI for cygwin; try /dev/null first then fall back to NUL.
|
28
|
+
* RubyGems now enforces ruby 1.8.7 or newer.
|
29
|
+
|
30
|
+
=== 1.5.0 / 2011-01-31
|
2
31
|
|
3
32
|
Major Enhancements:
|
4
33
|
|
data/Manifest.txt
CHANGED
@@ -178,6 +178,7 @@ test/rubygems/test_gem_remote_fetcher.rb
|
|
178
178
|
test/rubygems/test_gem_requirement.rb
|
179
179
|
test/rubygems/test_gem_security.rb
|
180
180
|
test/rubygems/test_gem_server.rb
|
181
|
+
test/rubygems/test_gem_silent_ui.rb
|
181
182
|
test/rubygems/test_gem_source_index.rb
|
182
183
|
test/rubygems/test_gem_spec_fetcher.rb
|
183
184
|
test/rubygems/test_gem_specification.rb
|
data/README.rdoc
CHANGED
@@ -23,22 +23,6 @@ See UPGRADING.rdoc for more details and alternative instructions.
|
|
23
23
|
|
24
24
|
-----
|
25
25
|
|
26
|
-
NOTE: Ruby 1.9 ships with rubygems and contains a very buggy
|
27
|
-
"gem-prelude". It is a gem loading system that can interfere with
|
28
|
-
updating rubygems itself. We do NOT recommend you update to rubygems
|
29
|
-
1.4 if you're running ruby 1.9.x until we get that sorted out in a
|
30
|
-
future ruby release.
|
31
|
-
|
32
|
-
If you absolutely hate kittens and you _must_ upgrade, you're going to
|
33
|
-
have to do something really hokey like:
|
34
|
-
|
35
|
-
% alias ruby19="ruby19 --disable-gems"
|
36
|
-
% alias gem19="ruby19 --disable-gems -S gem"
|
37
|
-
|
38
|
-
Even deleting the stock rubygems in 1.9 doesn't fix this situation.
|
39
|
-
|
40
|
-
-----
|
41
|
-
|
42
26
|
If you don't have any RubyGems install, there is still the pre-gem approach to
|
43
27
|
getting software, doing it manually:
|
44
28
|
|
data/Rakefile
CHANGED
@@ -29,7 +29,7 @@ hoe = Hoe.spec 'rubygems-update' do
|
|
29
29
|
self.readme_file = 'README.rdoc'
|
30
30
|
|
31
31
|
spec_extras[:required_rubygems_version] = Gem::Requirement.default
|
32
|
-
spec_extras[:required_ruby_version] = Gem::Requirement.new '
|
32
|
+
spec_extras[:required_ruby_version] = Gem::Requirement.new '>= 1.8.7'
|
33
33
|
spec_extras[:executables] = ['update_rubygems']
|
34
34
|
|
35
35
|
clean_globs.push('**/debug.log',
|
@@ -82,9 +82,9 @@ end
|
|
82
82
|
# --------------------------------------------------------------------
|
83
83
|
# Creating a release
|
84
84
|
|
85
|
-
task :prerelease => [:clobber, :
|
85
|
+
task :prerelease => [:clobber, :check_manifest, :test, :test_functional]
|
86
86
|
|
87
|
-
task :postrelease =>
|
87
|
+
task :postrelease => :publish_docs
|
88
88
|
|
89
89
|
pkg_dir_path = "pkg/rubygems-update-#{hoe.version}"
|
90
90
|
task :package do
|
@@ -95,14 +95,6 @@ task :package do
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
-
task :sanity_check do
|
99
|
-
abort "svn status dirty. commit or revert them" unless `svn st`.empty?
|
100
|
-
end
|
101
|
-
|
102
|
-
task :tag => :sanity_check do
|
103
|
-
raise "need a git version of rake tag written"
|
104
|
-
end
|
105
|
-
|
106
98
|
# Misc Tasks ---------------------------------------------------------
|
107
99
|
|
108
100
|
# These tasks expect to have the following directory structure:
|
@@ -179,27 +171,3 @@ task "rcov:for", [:test] do |task, args|
|
|
179
171
|
ruby "#{flags.join ' '} #{rcov} #{rflags.join ' '} #{args[:test]}"
|
180
172
|
end
|
181
173
|
|
182
|
-
task :graph do
|
183
|
-
$: << File.expand_path("~/Work/p4/zss/src/graph/dev/lib")
|
184
|
-
require 'graph'
|
185
|
-
deps = Graph.new
|
186
|
-
deps.rotate
|
187
|
-
|
188
|
-
current = nil
|
189
|
-
`rake -P -s`.each_line do |line|
|
190
|
-
case line
|
191
|
-
when /^rake (.+)/
|
192
|
-
current = $1
|
193
|
-
deps[current] if current # force the node to exist, in case of a leaf
|
194
|
-
when /^\s+(.+)/
|
195
|
-
deps[current] << $1 if current
|
196
|
-
else
|
197
|
-
warn "unparsed: #{line.chomp}"
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
|
202
|
-
deps.boxes
|
203
|
-
deps.save "graph", nil
|
204
|
-
end
|
205
|
-
|
data/UPGRADING.rdoc
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
= How to upgrade/downgrade Rubygems:
|
2
2
|
|
3
|
+
== For RubyGems 1.5.0 and 1.5.1:
|
4
|
+
|
5
|
+
RubyGems 1.5.0 and 1.5.1 shipped with a broken <tt>gem update --system</tt>.
|
6
|
+
You will need to use the Manual Upgrade Recipe below.
|
7
|
+
|
3
8
|
== On Ruby 1.9.x:
|
4
9
|
|
5
10
|
=== From stock ruby shipping with 1.9:
|
@@ -28,10 +33,16 @@ Use the Normal Upgrade Recipe below.
|
|
28
33
|
|
29
34
|
=== Normal Downgrade
|
30
35
|
|
36
|
+
==== With rubygems 1.5.2 and higher:
|
37
|
+
|
38
|
+
$ gem update --system 1.3.7
|
39
|
+
|
40
|
+
==== With rubygems 1.5.1 and lower:
|
41
|
+
|
31
42
|
Use sudo/su as appropriate:
|
32
43
|
|
33
44
|
$ gem install rubygems-update -v 1.3.7
|
34
|
-
$ update_rubygems
|
45
|
+
$ update_rubygems _1.3.7_
|
35
46
|
|
36
47
|
Replace 1.3.7 with whatever version you want to downgrade to. This
|
37
48
|
recipe can also be used to upgrade to a specific version instead of
|
data/bin/gem
CHANGED
@@ -9,7 +9,7 @@ require 'rubygems'
|
|
9
9
|
require 'rubygems/gem_runner'
|
10
10
|
require 'rubygems/exceptions'
|
11
11
|
|
12
|
-
required_version = Gem::Requirement.new ">= 1.8.
|
12
|
+
required_version = Gem::Requirement.new ">= 1.8.7"
|
13
13
|
|
14
14
|
unless required_version.satisfied_by? Gem.ruby_version then
|
15
15
|
abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}"
|
data/cruise_config.rb
CHANGED
@@ -11,7 +11,9 @@ Project.configure do |project|
|
|
11
11
|
if Socket.gethostname =~ /cibuilder.pivotallabs.com/
|
12
12
|
# explicitly enable dev list notification only for interpreters which should be green
|
13
13
|
interpreters_with_enabled_notification = [
|
14
|
-
'1.8.7-
|
14
|
+
'1.8.7-p330',
|
15
|
+
'1.9.1-p378',
|
16
|
+
'1.9.2-p136'
|
15
17
|
]
|
16
18
|
if interpreters_with_enabled_notification.include?(interpreter)
|
17
19
|
project.email_notifier.emails = ['rubygems-developers@rubyforge.org']
|
data/lib/rubygems.rb
CHANGED
@@ -118,7 +118,7 @@ require 'thread' # HACK: remove me for 1.5 - this is here just for rails
|
|
118
118
|
# -The RubyGems Team
|
119
119
|
|
120
120
|
module Gem
|
121
|
-
RubyGemsVersion = VERSION = '1.5.
|
121
|
+
RubyGemsVersion = VERSION = '1.5.2'
|
122
122
|
|
123
123
|
##
|
124
124
|
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
@@ -27,13 +27,7 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
27
27
|
end
|
28
28
|
|
29
29
|
add_option '--[no-]vendor',
|
30
|
-
'Install into vendorlibdir not sitelibdir',
|
31
|
-
'(Requires Ruby 1.8.7)' do |vendor, options|
|
32
|
-
if vendor and Gem.ruby_version < Gem::Version.new('1.8.7') then
|
33
|
-
raise OptionParser::InvalidOption,
|
34
|
-
"requires ruby 1.8.7+ (you have #{Gem.ruby_version})"
|
35
|
-
end
|
36
|
-
|
30
|
+
'Install into vendorlibdir not sitelibdir' do |vendor, options|
|
37
31
|
options[:site_or_vendor] = vendor ? :vendorlibdir : :sitelibdir
|
38
32
|
end
|
39
33
|
|
@@ -55,7 +49,7 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
55
49
|
end
|
56
50
|
|
57
51
|
def check_ruby_version
|
58
|
-
required_version = Gem::Requirement.new '>= 1.8.
|
52
|
+
required_version = Gem::Requirement.new '>= 1.8.7'
|
59
53
|
|
60
54
|
unless required_version.satisfied_by? Gem.ruby_version then
|
61
55
|
alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
|
@@ -21,8 +21,16 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
21
21
|
|
22
22
|
add_install_update_options
|
23
23
|
|
24
|
-
|
24
|
+
OptionParser.accept Gem::Version do |value|
|
25
|
+
Gem::Version.new value
|
26
|
+
|
27
|
+
value
|
28
|
+
end
|
29
|
+
|
30
|
+
add_option('--system [VERSION]', Gem::Version,
|
25
31
|
'Update the RubyGems system software') do |value, options|
|
32
|
+
value = true unless value
|
33
|
+
|
26
34
|
options[:system] = value
|
27
35
|
end
|
28
36
|
|
@@ -44,33 +52,13 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
44
52
|
end
|
45
53
|
|
46
54
|
def execute
|
55
|
+
@installer = Gem::DependencyInstaller.new options
|
56
|
+
@updated = []
|
57
|
+
|
47
58
|
hig = {}
|
48
59
|
|
49
60
|
if options[:system] then
|
50
|
-
|
51
|
-
|
52
|
-
unless options[:args].empty? then
|
53
|
-
raise "No gem names are allowed with the --system option"
|
54
|
-
end
|
55
|
-
|
56
|
-
rubygems_update = Gem::Specification.new
|
57
|
-
rubygems_update.name = 'rubygems-update'
|
58
|
-
rubygems_update.version = Gem::Version.new Gem::VERSION
|
59
|
-
hig['rubygems-update'] = rubygems_update
|
60
|
-
|
61
|
-
options[:user_install] = false
|
62
|
-
|
63
|
-
Gem.source_index.refresh!
|
64
|
-
|
65
|
-
update_gems = Gem.source_index.find_name 'rubygems-update'
|
66
|
-
|
67
|
-
latest_update_gem = update_gems.sort_by { |s| s.version }.last
|
68
|
-
|
69
|
-
say "Updating RubyGems to #{latest_update_gem.version}"
|
70
|
-
installed = do_rubygems_update latest_update_gem.version
|
71
|
-
|
72
|
-
say "RubyGems system software updated" if installed
|
73
|
-
|
61
|
+
update_rubygems
|
74
62
|
return
|
75
63
|
else
|
76
64
|
say "Updating installed gems"
|
@@ -86,28 +74,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
86
74
|
|
87
75
|
gems_to_update = which_to_update hig, options[:args]
|
88
76
|
|
89
|
-
updated =
|
90
|
-
|
91
|
-
installer = Gem::DependencyInstaller.new options
|
92
|
-
|
93
|
-
gems_to_update.uniq.sort.each do |name|
|
94
|
-
next if updated.any? { |spec| spec.name == name }
|
95
|
-
success = false
|
96
|
-
|
97
|
-
say "Updating #{name}"
|
98
|
-
begin
|
99
|
-
installer.install name
|
100
|
-
success = true
|
101
|
-
rescue Gem::InstallError => e
|
102
|
-
alert_error "Error installing #{name}:\n\t#{e.message}"
|
103
|
-
success = false
|
104
|
-
end
|
105
|
-
|
106
|
-
installer.installed_gems.each do |spec|
|
107
|
-
updated << spec
|
108
|
-
say "Successfully installed #{spec.full_name}" if success
|
109
|
-
end
|
110
|
-
end
|
77
|
+
updated = update_gems gems_to_update
|
111
78
|
|
112
79
|
if updated.empty? then
|
113
80
|
say "Nothing to update"
|
@@ -130,12 +97,77 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
130
97
|
end
|
131
98
|
end
|
132
99
|
|
100
|
+
def update_gem name, version = Gem::Requirement.default
|
101
|
+
return if @updated.any? { |spec| spec.name == name }
|
102
|
+
success = false
|
103
|
+
|
104
|
+
say "Updating #{name}"
|
105
|
+
begin
|
106
|
+
@installer.install name, version
|
107
|
+
success = true
|
108
|
+
rescue Gem::InstallError => e
|
109
|
+
alert_error "Error installing #{name}:\n\t#{e.message}"
|
110
|
+
success = false
|
111
|
+
end
|
112
|
+
|
113
|
+
@installer.installed_gems.each do |spec|
|
114
|
+
@updated << spec
|
115
|
+
say "Successfully installed #{spec.full_name}" if success
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def update_gems gems_to_update
|
120
|
+
gems_to_update.uniq.sort.each do |name|
|
121
|
+
update_gem name
|
122
|
+
end
|
123
|
+
|
124
|
+
@updated
|
125
|
+
end
|
126
|
+
|
133
127
|
##
|
134
|
-
# Update
|
128
|
+
# Update RubyGems software to the latest version.
|
129
|
+
|
130
|
+
def update_rubygems
|
131
|
+
unless options[:args].empty? then
|
132
|
+
alert_error "Gem names are not allowed with the --system option"
|
133
|
+
terminate_interaction 1
|
134
|
+
end
|
135
|
+
|
136
|
+
options[:user_install] = false
|
137
|
+
|
138
|
+
version = options[:system]
|
139
|
+
if version == true then
|
140
|
+
version = Gem::Version.new Gem::VERSION
|
141
|
+
requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
|
142
|
+
else
|
143
|
+
version = Gem::Version.new version
|
144
|
+
requirement = Gem::Requirement.new version
|
145
|
+
end
|
146
|
+
|
147
|
+
rubygems_update = Gem::Specification.new
|
148
|
+
rubygems_update.name = 'rubygems-update'
|
149
|
+
rubygems_update.version = version
|
150
|
+
|
151
|
+
hig = {
|
152
|
+
'rubygems-update' => rubygems_update
|
153
|
+
}
|
154
|
+
|
155
|
+
gems_to_update = which_to_update hig, options[:args]
|
156
|
+
|
157
|
+
if gems_to_update.empty? then
|
158
|
+
say "Latest version currently installed. Aborting."
|
159
|
+
terminate_interaction
|
160
|
+
end
|
161
|
+
|
162
|
+
update_gem gems_to_update.first, requirement
|
163
|
+
|
164
|
+
Gem.source_index.refresh!
|
165
|
+
|
166
|
+
installed_gems = Gem.source_index.find_name 'rubygems-update', requirement
|
167
|
+
version = installed_gems.last.version
|
135
168
|
|
136
|
-
def do_rubygems_update(version)
|
137
169
|
args = []
|
138
|
-
args
|
170
|
+
args << '--prefix' << Gem.prefix if Gem.prefix
|
139
171
|
args << '--no-rdoc' unless options[:generate_rdoc]
|
140
172
|
args << '--no-ri' unless options[:generate_ri]
|
141
173
|
args << '--no-format-executable' if options[:no_format_executable]
|
@@ -148,8 +180,9 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
148
180
|
|
149
181
|
# Make sure old rubygems isn't loaded
|
150
182
|
old = ENV["RUBYOPT"]
|
151
|
-
ENV.delete("RUBYOPT")
|
152
|
-
system setup_cmd
|
183
|
+
ENV.delete("RUBYOPT") if old
|
184
|
+
installed = system setup_cmd
|
185
|
+
say "RubyGems system software updated" if installed
|
153
186
|
ENV["RUBYOPT"] = old if old
|
154
187
|
end
|
155
188
|
end
|
@@ -173,7 +173,7 @@ class Gem::SpecFetcher
|
|
173
173
|
def suggest_gems_from_name gem_name
|
174
174
|
gem_name = gem_name.downcase
|
175
175
|
max = gem_name.size / 2
|
176
|
-
specs = list.values.flatten
|
176
|
+
specs = list.values.flatten 1
|
177
177
|
|
178
178
|
matches = specs.map { |name, version, platform|
|
179
179
|
next unless Gem::Platform.match platform
|
@@ -536,8 +536,8 @@ class Gem::Specification
|
|
536
536
|
|
537
537
|
def self.normalize_yaml_input(input)
|
538
538
|
result = input.respond_to?(:read) ? input.read : input
|
539
|
-
result = "--- " + result unless result =~
|
540
|
-
result
|
539
|
+
result = "--- " + result unless result =~ /\A--- /
|
540
|
+
result.gsub(/ !!null \n/, " \n")
|
541
541
|
end
|
542
542
|
|
543
543
|
##
|
@@ -720,11 +720,13 @@ class Gem::Specification
|
|
720
720
|
end
|
721
721
|
|
722
722
|
def to_yaml(opts = {}) # :nodoc:
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
723
|
+
if YAML.const_defined?(:ENGINE) && !YAML::ENGINE.syck? then
|
724
|
+
super.gsub(/ !!null \n/, " \n")
|
725
|
+
else
|
726
|
+
YAML.quick_emit object_id, opts do |out|
|
727
|
+
out.map taguri, to_yaml_style do |map|
|
728
|
+
encode_with map
|
729
|
+
end
|
728
730
|
end
|
729
731
|
end
|
730
732
|
end
|
@@ -829,6 +831,7 @@ class Gem::Specification
|
|
829
831
|
# checks..
|
830
832
|
|
831
833
|
def validate
|
834
|
+
require 'rubygems/user_interaction'
|
832
835
|
extend Gem::UserInteraction
|
833
836
|
normalize
|
834
837
|
|
data/lib/rubygems/test_case.rb
CHANGED
@@ -18,13 +18,8 @@ require 'uri'
|
|
18
18
|
require 'rubygems/package'
|
19
19
|
require 'rubygems/test_utilities'
|
20
20
|
require 'pp'
|
21
|
-
require 'yaml'
|
22
21
|
require 'zlib'
|
23
|
-
|
24
|
-
begin
|
25
|
-
YAML::ENGINE.yamler = 'psych'
|
26
|
-
rescue LoadError
|
27
|
-
end if YAML.const_defined? :ENGINE
|
22
|
+
Gem.load_yaml
|
28
23
|
|
29
24
|
begin
|
30
25
|
gem 'rdoc'
|
@@ -430,6 +425,7 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|
430
425
|
# Additional +prerelease+ gems may also be created:
|
431
426
|
#
|
432
427
|
# +@a2_pre+:: gem a version 2.a
|
428
|
+
# TODO: nuke this and fix tests. this should speed up a lot
|
433
429
|
|
434
430
|
def util_make_gems(prerelease = false)
|
435
431
|
@a1 = quick_gem 'a', '1' do |s|
|
@@ -453,11 +449,12 @@ Also, a list:
|
|
453
449
|
s.require_paths = %w[lib]
|
454
450
|
end
|
455
451
|
|
456
|
-
@a2
|
457
|
-
@a3a
|
452
|
+
@a2 = quick_gem('a', '2', &init)
|
453
|
+
@a3a = quick_gem('a', '3.a', &init)
|
458
454
|
@a_evil9 = quick_gem('a_evil', '9', &init)
|
459
|
-
@b2
|
460
|
-
@c1_2
|
455
|
+
@b2 = quick_gem('b', '2', &init)
|
456
|
+
@c1_2 = quick_gem('c', '1.2', &init)
|
457
|
+
|
461
458
|
@pl1 = quick_gem 'pl', '1' do |s| # l for legacy
|
462
459
|
s.files = %w[lib/code.rb]
|
463
460
|
s.require_paths = %w[lib]
|
@@ -471,12 +468,12 @@ Also, a list:
|
|
471
468
|
util_build_gem @a2_pre
|
472
469
|
end
|
473
470
|
|
474
|
-
write_file File.join(*%W[gems #{@a1.original_name}
|
475
|
-
write_file File.join(*%W[gems #{@a2.original_name}
|
476
|
-
write_file File.join(*%W[gems #{@a3a.original_name}
|
477
|
-
write_file File.join(*%W[gems #{@b2.original_name}
|
471
|
+
write_file File.join(*%W[gems #{@a1.original_name} lib code.rb])
|
472
|
+
write_file File.join(*%W[gems #{@a2.original_name} lib code.rb])
|
473
|
+
write_file File.join(*%W[gems #{@a3a.original_name} lib code.rb])
|
474
|
+
write_file File.join(*%W[gems #{@b2.original_name} lib code.rb])
|
478
475
|
write_file File.join(*%W[gems #{@c1_2.original_name} lib code.rb])
|
479
|
-
write_file File.join(*%W[gems #{@pl1.original_name}
|
476
|
+
write_file File.join(*%W[gems #{@pl1.original_name} lib code.rb])
|
480
477
|
|
481
478
|
[@a1, @a2, @a3a, @a_evil9, @b2, @c1_2, @pl1].each do |spec|
|
482
479
|
util_build_gem spec
|
@@ -530,15 +530,16 @@ class Gem::SilentUI < Gem::StreamUI
|
|
530
530
|
|
531
531
|
reader, writer = nil, nil
|
532
532
|
|
533
|
-
|
534
|
-
reader = File.open('nul', 'r')
|
535
|
-
writer = File.open('nul', 'w')
|
536
|
-
else
|
533
|
+
begin
|
537
534
|
reader = File.open('/dev/null', 'r')
|
538
535
|
writer = File.open('/dev/null', 'w')
|
536
|
+
rescue Errno::ENOENT
|
537
|
+
reader = File.open('nul', 'r')
|
538
|
+
writer = File.open('nul', 'w')
|
539
539
|
end
|
540
540
|
|
541
541
|
super reader, writer, writer
|
542
542
|
end
|
543
|
+
|
543
544
|
end
|
544
545
|
|
@@ -48,6 +48,150 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
48
48
|
assert_empty out
|
49
49
|
end
|
50
50
|
|
51
|
+
def util_setup_rubygem version
|
52
|
+
gem = quick_gem('rubygems-update', version.to_s) do |s|
|
53
|
+
s.files = %w[setup.rb]
|
54
|
+
end
|
55
|
+
write_file File.join(*%W[gems #{gem.original_name} setup.rb])
|
56
|
+
util_build_gem gem
|
57
|
+
util_setup_spec_fetcher gem
|
58
|
+
gem
|
59
|
+
end
|
60
|
+
|
61
|
+
def util_setup_rubygem8
|
62
|
+
@rubygem8 = util_setup_rubygem 8
|
63
|
+
end
|
64
|
+
|
65
|
+
def util_setup_rubygem9
|
66
|
+
@rubygem9 = util_setup_rubygem 9
|
67
|
+
end
|
68
|
+
|
69
|
+
def util_setup_rubygem_current
|
70
|
+
@rubygem_current = util_setup_rubygem Gem::VERSION
|
71
|
+
end
|
72
|
+
|
73
|
+
def util_add_to_fetcher *specs
|
74
|
+
specs.each do |spec|
|
75
|
+
gem_file = File.join @gemhome, 'cache', spec.file_name
|
76
|
+
|
77
|
+
@fetcher.data["http://gems.example.com/gems/#{spec.file_name}"] =
|
78
|
+
Gem.read_binary gem_file
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_execute_system
|
83
|
+
util_setup_rubygem9
|
84
|
+
util_setup_spec_fetcher @rubygem9
|
85
|
+
util_add_to_fetcher @rubygem9
|
86
|
+
util_clear_gems
|
87
|
+
|
88
|
+
@cmd.options[:args] = []
|
89
|
+
@cmd.options[:system] = true
|
90
|
+
@cmd.options[:generate_rdoc] = false
|
91
|
+
@cmd.options[:generate_ri] = false
|
92
|
+
|
93
|
+
use_ui @ui do
|
94
|
+
@cmd.execute
|
95
|
+
end
|
96
|
+
|
97
|
+
out = @ui.output.split "\n"
|
98
|
+
assert_equal "Updating rubygems-update", out.shift
|
99
|
+
assert_equal "Successfully installed rubygems-update-9", out.shift
|
100
|
+
assert_equal "Installing RubyGems 9", out.shift
|
101
|
+
assert_equal "RubyGems system software updated", out.shift
|
102
|
+
|
103
|
+
assert_empty out
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_execute_system_at_latest
|
107
|
+
util_setup_rubygem_current
|
108
|
+
util_setup_spec_fetcher @rubygem_current
|
109
|
+
util_add_to_fetcher @rubygem_current
|
110
|
+
util_clear_gems
|
111
|
+
|
112
|
+
@cmd.options[:args] = []
|
113
|
+
@cmd.options[:system] = true
|
114
|
+
@cmd.options[:generate_rdoc] = false
|
115
|
+
@cmd.options[:generate_ri] = false
|
116
|
+
|
117
|
+
assert_raises Gem::SystemExitException do
|
118
|
+
use_ui @ui do
|
119
|
+
@cmd.execute
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
out = @ui.output.split "\n"
|
124
|
+
assert_equal "Latest version currently installed. Aborting.", out.shift
|
125
|
+
assert_empty out
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_execute_system_multiple
|
129
|
+
util_setup_rubygem9
|
130
|
+
util_setup_rubygem8
|
131
|
+
util_setup_spec_fetcher @rubygem8, @rubygem9
|
132
|
+
util_add_to_fetcher @rubygem8, @rubygem9
|
133
|
+
util_clear_gems
|
134
|
+
|
135
|
+
@cmd.options[:args] = []
|
136
|
+
@cmd.options[:system] = true
|
137
|
+
@cmd.options[:generate_rdoc] = false
|
138
|
+
@cmd.options[:generate_ri] = false
|
139
|
+
|
140
|
+
use_ui @ui do
|
141
|
+
@cmd.execute
|
142
|
+
end
|
143
|
+
|
144
|
+
out = @ui.output.split "\n"
|
145
|
+
assert_equal "Updating rubygems-update", out.shift
|
146
|
+
assert_equal "Successfully installed rubygems-update-9", out.shift
|
147
|
+
assert_equal "Installing RubyGems 9", out.shift
|
148
|
+
assert_equal "RubyGems system software updated", out.shift
|
149
|
+
|
150
|
+
assert_empty out
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_execute_system_specific
|
154
|
+
util_clear_gems
|
155
|
+
util_setup_rubygem9
|
156
|
+
util_setup_rubygem8
|
157
|
+
util_setup_spec_fetcher @rubygem8, @rubygem9
|
158
|
+
util_add_to_fetcher @rubygem8, @rubygem9
|
159
|
+
|
160
|
+
@cmd.options[:args] = []
|
161
|
+
@cmd.options[:system] = "8"
|
162
|
+
@cmd.options[:generate_rdoc] = false
|
163
|
+
@cmd.options[:generate_ri] = false
|
164
|
+
|
165
|
+
use_ui @ui do
|
166
|
+
@cmd.execute
|
167
|
+
end
|
168
|
+
|
169
|
+
out = @ui.output.split "\n"
|
170
|
+
assert_equal "Updating rubygems-update", out.shift
|
171
|
+
assert_equal "Successfully installed rubygems-update-8", out.shift
|
172
|
+
assert_equal "Installing RubyGems 8", out.shift
|
173
|
+
assert_equal "RubyGems system software updated", out.shift
|
174
|
+
|
175
|
+
assert_empty out
|
176
|
+
end
|
177
|
+
|
178
|
+
def test_execute_system_with_gems
|
179
|
+
@cmd.options[:args] = %w[gem]
|
180
|
+
@cmd.options[:system] = true
|
181
|
+
@cmd.options[:generate_rdoc] = false
|
182
|
+
@cmd.options[:generate_ri] = false
|
183
|
+
|
184
|
+
assert_raises Gem::MockGemUi::TermError do
|
185
|
+
use_ui @ui do
|
186
|
+
@cmd.execute
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
assert_empty @ui.output
|
191
|
+
assert_equal "ERROR: Gem names are not allowed with the --system option\n",
|
192
|
+
@ui.error
|
193
|
+
end
|
194
|
+
|
51
195
|
# before:
|
52
196
|
# a1 -> c1.2
|
53
197
|
# after:
|
@@ -65,9 +209,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
65
209
|
@a2.add_dependency 'c', '2'
|
66
210
|
@a2.add_dependency 'b', '2'
|
67
211
|
|
68
|
-
@b2_path
|
212
|
+
@b2_path = File.join @gemhome, 'cache', @b2.file_name
|
69
213
|
@c1_2_path = File.join @gemhome, 'cache', @c1_2.file_name
|
70
|
-
@c2_path
|
214
|
+
@c2_path = File.join @gemhome, 'cache', @c2.file_name
|
71
215
|
|
72
216
|
@source_index = Gem::SourceIndex.new
|
73
217
|
@source_index.add_spec @a1
|
@@ -166,4 +310,39 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
166
310
|
|
167
311
|
assert_empty out
|
168
312
|
end
|
313
|
+
|
314
|
+
def test_handle_options_system
|
315
|
+
@cmd.handle_options %w[--system]
|
316
|
+
|
317
|
+
expected = {
|
318
|
+
:generate_ri => true,
|
319
|
+
:system => true,
|
320
|
+
:force => false,
|
321
|
+
:args => [],
|
322
|
+
:generate_rdoc => true,
|
323
|
+
}
|
324
|
+
|
325
|
+
assert_equal expected, @cmd.options
|
326
|
+
end
|
327
|
+
|
328
|
+
def test_handle_options_system_non_version
|
329
|
+
assert_raises ArgumentError do
|
330
|
+
@cmd.handle_options %w[--system non-version]
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
def test_handle_options_system_specific
|
335
|
+
@cmd.handle_options %w[--system 1.3.7]
|
336
|
+
|
337
|
+
expected = {
|
338
|
+
:generate_ri => true,
|
339
|
+
:system => "1.3.7",
|
340
|
+
:force => false,
|
341
|
+
:args => [],
|
342
|
+
:generate_rdoc => true,
|
343
|
+
}
|
344
|
+
|
345
|
+
assert_equal expected, @cmd.options
|
346
|
+
end
|
347
|
+
|
169
348
|
end
|
@@ -88,7 +88,6 @@ class TestGemSilentUI < Gem::TestCase
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def test_progress_reporter
|
91
|
-
value = nil
|
92
91
|
out, err = capture_io do
|
93
92
|
use_ui @sui do
|
94
93
|
@sui.progress_reporter 10, 'hi'
|
@@ -100,7 +99,6 @@ class TestGemSilentUI < Gem::TestCase
|
|
100
99
|
end
|
101
100
|
|
102
101
|
def test_download_reporter
|
103
|
-
value = nil
|
104
102
|
out, err = capture_io do
|
105
103
|
use_ui @sui do
|
106
104
|
@sui.download_reporter.fetch 'a.gem', 1024
|
@@ -161,6 +161,13 @@ end
|
|
161
161
|
Gem::Specification.normalize_yaml_input(StringIO.new(input))
|
162
162
|
end
|
163
163
|
|
164
|
+
def test_self_normalize_yaml_input_with_192_yaml
|
165
|
+
input = "--- !ruby/object:Gem::Specification \nblah: !!null \n"
|
166
|
+
expected = "--- !ruby/object:Gem::Specification \nblah: \n"
|
167
|
+
|
168
|
+
assert_equal expected, Gem::Specification.normalize_yaml_input(input)
|
169
|
+
end
|
170
|
+
|
164
171
|
def test_initialize
|
165
172
|
spec = Gem::Specification.new do |s|
|
166
173
|
s.name = "blah"
|
@@ -878,6 +885,9 @@ end
|
|
878
885
|
|
879
886
|
def test_to_yaml
|
880
887
|
yaml_str = @a1.to_yaml
|
888
|
+
|
889
|
+
refute_match '!!null', yaml_str
|
890
|
+
|
881
891
|
same_spec = YAML.load(yaml_str)
|
882
892
|
|
883
893
|
assert_equal @a1, same_spec
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 1.5.
|
9
|
+
- 2
|
10
|
+
version: 1.5.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jim Weirich
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
x52qPcexcYZR7w==
|
39
39
|
-----END CERTIFICATE-----
|
40
40
|
|
41
|
-
date: 2011-
|
41
|
+
date: 2011-02-10 00:00:00 -08:00
|
42
42
|
default_executable:
|
43
43
|
dependencies:
|
44
44
|
- !ruby/object:Gem::Dependency
|
@@ -150,22 +150,6 @@ description: |-
|
|
150
150
|
|
151
151
|
-----
|
152
152
|
|
153
|
-
NOTE: Ruby 1.9 ships with rubygems and contains a very buggy
|
154
|
-
"gem-prelude". It is a gem loading system that can interfere with
|
155
|
-
updating rubygems itself. We do NOT recommend you update to rubygems
|
156
|
-
1.4 if you're running ruby 1.9.x until we get that sorted out in a
|
157
|
-
future ruby release.
|
158
|
-
|
159
|
-
If you absolutely hate kittens and you _must_ upgrade, you're going to
|
160
|
-
have to do something really hokey like:
|
161
|
-
|
162
|
-
% alias ruby19="ruby19 --disable-gems"
|
163
|
-
% alias gem19="ruby19 --disable-gems -S gem"
|
164
|
-
|
165
|
-
Even deleting the stock rubygems in 1.9 doesn't fix this situation.
|
166
|
-
|
167
|
-
-----
|
168
|
-
|
169
153
|
If you don't have any RubyGems install, there is still the pre-gem approach to
|
170
154
|
getting software, doing it manually:
|
171
155
|
|
@@ -371,6 +355,7 @@ files:
|
|
371
355
|
- test/rubygems/test_gem_requirement.rb
|
372
356
|
- test/rubygems/test_gem_security.rb
|
373
357
|
- test/rubygems/test_gem_server.rb
|
358
|
+
- test/rubygems/test_gem_silent_ui.rb
|
374
359
|
- test/rubygems/test_gem_source_index.rb
|
375
360
|
- test/rubygems/test_gem_spec_fetcher.rb
|
376
361
|
- test/rubygems/test_gem_specification.rb
|
@@ -383,7 +368,6 @@ files:
|
|
383
368
|
- test/rubygems/test_kernel.rb
|
384
369
|
- util/CL2notes
|
385
370
|
- util/gem_prelude.rb
|
386
|
-
- test/rubygems/test_gem_silent_ui.rb
|
387
371
|
- .gemtest
|
388
372
|
has_rdoc: true
|
389
373
|
homepage: http://rubygems.org
|
@@ -393,20 +377,20 @@ post_install_message:
|
|
393
377
|
rdoc_options:
|
394
378
|
- --main
|
395
379
|
- README.rdoc
|
396
|
-
- --title=RubyGems 1.5.
|
380
|
+
- --title=RubyGems 1.5.2 Documentation
|
397
381
|
require_paths:
|
398
382
|
- hide_lib_for_update
|
399
383
|
required_ruby_version: !ruby/object:Gem::Requirement
|
400
384
|
none: false
|
401
385
|
requirements:
|
402
|
-
- - "
|
386
|
+
- - ">="
|
403
387
|
- !ruby/object:Gem::Version
|
404
|
-
hash:
|
388
|
+
hash: 57
|
405
389
|
segments:
|
406
390
|
- 1
|
407
391
|
- 8
|
408
|
-
-
|
409
|
-
version: 1.8.
|
392
|
+
- 7
|
393
|
+
version: 1.8.7
|
410
394
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
395
|
none: false
|
412
396
|
requirements:
|
@@ -419,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
419
403
|
requirements: []
|
420
404
|
|
421
405
|
rubyforge_project: rubygems
|
422
|
-
rubygems_version: 1.
|
406
|
+
rubygems_version: 1.5.3
|
423
407
|
signing_key:
|
424
408
|
specification_version: 3
|
425
409
|
summary: RubyGems is a package management framework for Ruby
|
metadata.gz.sig
CHANGED
Binary file
|