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) }.each { |sg| sg.activate_platform(platform) } end