def self.to_hash(cookbook, name, version=nil)
frozen = false
if cookbook.has_key?(:frozen)
frozen = cookbook[:frozen]
cookbook = cookbook.dup
cookbook.delete(:frozen)
end
result = files_from(cookbook)
recipe_names = result[:recipes].map do |recipe|
recipe_name = recipe[:name][0..-2]
recipe_name == 'default' ? name : "#{name}::#{recipe_name}"
end
result[:metadata] = metadata_from(cookbook, name, version, recipe_names)
result[:name] = "#{name}-#{result[:metadata][:version]}"
result[:json_class] = 'Chef::CookbookVersion'
result[:cookbook_name] = name
result[:version] = result[:metadata][:version]
result[:chef_type] = 'cookbook_version'
result[:frozen?] = true if frozen
result
end