class Bundler::Resolver

def search_for(dependency)

def search_for(dependency)
  platform = dependency.__platform
  dependency = dependency.dep unless dependency.is_a? Gem::Dependency
  search = @search_for[dependency] ||= begin
    index = @source_requirements[dependency.name] || @index
    results = index.search(dependency, @base[dependency.name])
    if vertex = @base_dg.vertex_named(dependency.name)
      locked_requirement = vertex.payload.requirement
    end
    if results.any?
      version = results.first.version
      nested  = [[]]
      results.each do |spec|
        if spec.version != version
          nested << []
          version = spec.version
        end
        nested.last << spec
      end
      groups = nested.map {|a| SpecGroup.new(a) }
      !locked_requirement ? groups : groups.select {|sg| locked_requirement.satisfied_by? sg.version }
    else
      []
    end
  end
  search.select {|sg| sg.for?(platform, @ruby_version) }.each {|sg| sg.activate_platform(platform) }
end