class ChefCLI::Policyfile::SolutionDependencies
def add_cookbook_dep_from_lock_data(name_and_version, deps_list)
def add_cookbook_dep_from_lock_data(name_and_version, deps_list) unless name_and_version.is_a?(String) show = "#{name_and_version.inspect} => #{deps_list.inspect}" msg = %Q{lockfile cookbook_dependencies entries must be of the form "$COOKBOOK_NAME ($VERSION)" => [ $dependency, ...] (got: #{show}) } raise InvalidLockfile, msg end unless Cookbook.valid_str?(name_and_version) msg = %Q{lockfile cookbook_dependencies entry keys must be of the form "$COOKBOOK_NAME ($VERSION)" (got: #{name_and_version.inspect}) } raise InvalidLockfile, msg end unless deps_list.is_a?(Array) msg = %Q{lockfile cookbook_dependencies entry values must be an Array like [ [ "$COOKBOOK_NAME", "$CONSTRAINT" ], ... ] (got: #{deps_list.inspect}) } raise InvalidLockfile, msg end deps_list.each do |entry| unless entry.is_a?(Array) && entry.size == 2 msg = %Q{lockfile solution_dependencies dependencies entry must be like [ "$COOKBOOK_NAME", "$CONSTRAINT" ] (got: #{entry.inspect})} raise InvalidLockfile, msg end dep_name, constraint = entry unless dep_name.is_a?(String) && !dep_name.empty? msg = "malformed lockfile solution_dependencies dependencies entry. Cookbook name portion must be a string (got: #{entry.inspect})" raise InvalidLockfile, msg end unless constraint.is_a?(String) && !constraint.empty? msg = "malformed lockfile solution_dependencies dependencies entry. Version constraint portion must be a string (got: #{entry.inspect})" raise InvalidLockfile, msg end end cookbook = Cookbook.parse(name_and_version) add_cookbook_obj_dep(cookbook, deps_list) end