# File lib/rubygems/source_info_cache.rb, line 299
  def search_with_source(pattern, only_platform = false, all = false)
    read_all_cache_data if all

    results = []

    cache_data.map do |source_uri, sic_entry|
      next unless Gem.sources.include? source_uri

      # TODO - Remove this gunk after 2008/11
      unless pattern.kind_of?(Gem::Dependency)
        pattern = Gem::Dependency.new(pattern, Gem::Requirement.default) 
      end

      sic_entry.source_index.search(pattern, only_platform).each do |spec|
        results << [spec, source_uri]
      end
    end

    results
  end