amount_constrained(dependency)
private
returns an integer in (-infty, 0] a number closer to 0 means the dependency
is less constraining
dependencies w/ 0 or 1 possibilities (ignoring version requirements) are
given very negative values, so they always sort first, before
dependencies that are unconstrained
Show source
def amount_constrained(dependency)
@amount_constrained ||= {}
@amount_constrained[dependency.name] ||= begin
name_dependency = Gem::Dependency.new(dependency.name)
dependency_request_for_name = Gem::Resolver::DependencyRequest.new(name_dependency, dependency.requester)
all = @set.find_all(dependency_request_for_name).size
if all <= 1
all - SINGLE_POSSIBILITY_CONSTRAINT_PENALTY
else
search = search_for(dependency).size
search - all
end
end
end