class Gem::Specification

def self._latest_specs specs, prerelease = false # :nodoc:

:nodoc:
def self._latest_specs specs, prerelease = false # :nodoc:
  result = Hash.new { |h,k| h[k] = {} }
  native = {}
  specs.reverse_each do |spec|
    next if spec.version.prerelease? unless prerelease
    native[spec.name] = spec.version if spec.platform == Gem::Platform::RUBY
    result[spec.name][spec.platform] = spec
  end
  result.map(&:last).map(&:values).flatten.reject { |spec|
    minimum = native[spec.name]
    minimum && spec.version < minimum
  }.sort_by{ |tup| tup.name }
end