class Gem::Commands::UpdateCommand
def which_to_update highest_installed_gems, gem_names, system = false
def which_to_update highest_installed_gems, gem_names, system = false result = [] highest_installed_gems.each do |l_name, l_spec| next if not gem_names.empty? and gem_names.all? { |name| /#{name}/ !~ l_spec.name } dependency = Gem::Dependency.new l_spec.name, "> #{l_spec.version}" dependency.prerelease = options[:prerelease] fetcher = Gem::SpecFetcher.fetcher spec_tuples, _ = fetcher.search_for_dependency dependency matching_gems = spec_tuples.select do |g,_| g.name == l_name and g.match_platform? end highest_remote_gem = matching_gems.sort_by { |g,_| g.version }.last highest_remote_gem ||= [Gem::NameTuple.null] highest_remote_ver = highest_remote_gem.first.version if system or (l_spec.version < highest_remote_ver) then result << [l_spec.name, [l_spec.version, highest_remote_ver].max] end end result end