def self.metadata_from(directory, name, version, recipe_names)
metadata = PretendCookbookMetadata.new(PretendCookbook.new(name, recipe_names))
if has_child(directory, 'metadata.rb')
begin
file = filename(directory, 'metadata.rb') || "(#{name}/metadata.rb)"
metadata.instance_eval(read_file(directory, 'metadata.rb'), file)
rescue
ChefZero::Log.error("Error loading cookbook #{name}: #{$!}\n #{$!.backtrace.join("\n ")}")
end
elsif has_child(directory, 'metadata.json')
metadata.from_json(read_file(directory, 'metadata.json'))
end
result = {}
metadata.to_hash.each_pair do |key,value|
result[key.to_sym] = value
end
result[:version] = version if version
result
end