def resolve_requirement(spec, requirement, reqs, activated)
spec.required_by.replace requirement.required_by
spec.required_by << requirement
activated[spec.name] = spec
debug { " Activating: #{spec.name} (#{spec.version})" }
debug { spec.required_by.map { |d| " * #{d.name} (#{d.version_requirements})" }.join("\n") }
debug { " Dependencies"}
spec.dependencies.each do |dep|
next if dep.type == :development
debug { " * #{dep.name} (#{dep.version_requirements})" }
dep.required_by.replace(requirement.required_by)
dep.required_by << requirement
reqs << dep
end
length = @stack.length
@stack << requirement.name
retval = catch(requirement.name) do
resolve(reqs, activated)
end
@stack.slice!(length..-1)
retval
end