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