# File lib/bundler/resolver.rb, line 232
    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