def search(dependency)
@cache[dependency.hash] ||= begin
pinned = @by_gem[dependency.name].gems if @by_gem[dependency.name]
specs = (pinned || @specs)[dependency.name]
wants_prerelease = dependency.version_requirements.prerelease?
only_prerelease = specs.all? {|spec| spec.version.prerelease? }
found = specs.select { |spec| dependency =~ spec }
unless wants_prerelease || (pinned && only_prerelease)
found.reject! { |spec| spec.version.prerelease? }
end
found.sort_by {|s| [s.version, s.platform.to_s == 'ruby' ? "\0" : s.platform.to_s] }
end
end