class Chef::Cookbook::ManifestV0

Constants

COOKBOOK_SEGMENTS

Public Class Methods

from_hash(hash) click to toggle source
# File lib/chef/cookbook/manifest_v0.rb, line 31
def from_hash(hash)
  response = Mash.new(hash)
  response[:all_files] = COOKBOOK_SEGMENTS.inject([]) do |memo, segment|
    next memo if hash[segment].nil? || hash[segment].empty?
    hash[segment].each do |file|
      file["name"] = "#{segment}/#{file["name"]}"
      memo << file
    end
    response.delete(segment)
    memo
  end
  response
end
to_h(manifest) click to toggle source
# File lib/chef/cookbook/manifest_v0.rb, line 45
def to_h(manifest)
  result = manifest.manifest.dup
  result.delete("all_files")

  files = manifest.by_parent_directory
  files.keys.each_with_object(result) do |parent, memo|
    if COOKBOOK_SEGMENTS.include?(parent)
      memo[parent] ||= []
      files[parent].each do |file|
        file["name"] = file["name"].split("/")[1]
        file.delete("full_path")
        memo[parent] << file
      end
    end
  end
  # Ensure all segments are set to [] if they don't exist.
  # See https://github.com/chef/chef/issues/6044
  COOKBOOK_SEGMENTS.each do |segment|
    result[segment] ||= []
  end

  result.merge({ "frozen?" => manifest.frozen_version?, "chef_type" => "cookbook_version" })
end
Also aliased as: to_hash
to_hash(manifest)
Alias for: to_h