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