Skip to content

Commit a7f81cc

Browse files
Make code to find target update version easier to follow
1 parent 49d28cf commit a7f81cc

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

lib/rubygems/commands/update_command.rb

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@ def highest_remote_name_tuple(spec) # :nodoc:
163163
spec_tuples = fetch_remote_gems spec
164164

165165
highest_remote_gem = spec_tuples.max
166-
167-
highest_remote_gem ||= [Gem::NameTuple.null]
166+
return unless highest_remote_gem
168167

169168
highest_remote_gem.first
170169
end
@@ -209,30 +208,22 @@ def rubygems_target_version
209208
version = options[:system]
210209
update_latest = version == true
211210

212-
if update_latest
213-
version = Gem::Version.new Gem::VERSION
214-
requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
215-
else
211+
unless update_latest
216212
version = Gem::Version.new version
217213
requirement = Gem::Requirement.new version
214+
215+
return version, requirement
218216
end
219217

218+
version = Gem::Version.new Gem::VERSION
219+
requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
220+
220221
rubygems_update = Gem::Specification.new
221222
rubygems_update.name = 'rubygems-update'
222223
rubygems_update.version = version
223224

224-
hig = {
225-
'rubygems-update' => rubygems_update,
226-
}
227-
228-
gems_to_update = which_to_update hig, options[:args], :system
229-
up_ver = gems_to_update.first.version
230-
231-
target = if update_latest
232-
up_ver
233-
else
234-
version
235-
end
225+
highest_remote_tup = highest_remote_name_tuple(rubygems_update)
226+
target = highest_remote_tup ? highest_remote_tup.version : version
236227

237228
return target, requirement
238229
end
@@ -303,20 +294,17 @@ def update_rubygems_arguments # :nodoc:
303294
args
304295
end
305296

306-
def which_to_update(highest_installed_gems, gem_names, system = false)
297+
def which_to_update(highest_installed_gems, gem_names)
307298
result = []
308299

309300
highest_installed_gems.each do |l_name, l_spec|
310301
next if not gem_names.empty? and
311302
gem_names.none? {|name| name == l_spec.name }
312303

313304
highest_remote_tup = highest_remote_name_tuple l_spec
314-
highest_remote_ver = highest_remote_tup.version
315-
highest_installed_ver = l_spec.version
305+
next unless highest_remote_tup
316306

317-
if system or (highest_installed_ver < highest_remote_ver)
318-
result << Gem::NameTuple.new(l_spec.name, [highest_installed_ver, highest_remote_ver].max, highest_remote_tup.platform)
319-
end
307+
result << highest_remote_tup
320308
end
321309

322310
result

0 commit comments

Comments
 (0)