223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
# File 'lib/rubygems/resolver.rb', line 223
def search_for(dependency)
possibles, all = find_possible(dependency)
if !@soft_missing && possibles.empty?
exc = Gem::UnsatisfiableDependencyError.new dependency, all
exc.errors = @set.errors
raise exc
end
groups = Hash.new {|hash, key| hash[key] = [] }
sources = possibles.map do |spec|
source = spec.source
groups[source] << spec
source
end.uniq.reverse
activation_requests = []
sources.each do |source|
groups[source].
sort_by {|spec| [spec.version, spec.platform =~ Gem::Platform.local ? 1 : 0] }. map {|spec| ActivationRequest.new spec, dependency }.
each {|activation_request| activation_requests << activation_request }
end
activation_requests
end
|