class ChefCLI::Policyfile::IncludedPoliciesCookbookSource
def build_universe
def build_universe included_policy_location_specs.inject({}) do |acc, policy_spec| lock = policy_spec.policyfile_lock cookbook_dependencies = lock.solution_dependencies.cookbook_dependencies cookbook_dependencies.each do |(cookbook, deps)| name = cookbook.name version = cookbook.version mapped_deps = deps.map do |dep| [dep[0], dep[1].to_s] end if acc[name] if acc[name][version] if acc[name][version] != mapped_deps raise ConflictingCookbookDependencies.new("Conflicting dependencies provided for cookbook #{name}") end else raise ConflictingCookbookVersions.new("Multiple versions provided for cookbook #{name}") end else acc[name] = {} acc[name][version] = mapped_deps end end acc end end