lib/nanoc/data_sources/filesystem.rb in nanoc-4.3.8 vs lib/nanoc/data_sources/filesystem.rb in nanoc-4.4.0
- old
+ new
@@ -74,24 +74,26 @@
protected
class ProtoDocument
attr_reader :attributes
- attr_reader :checksum_data
+ attr_reader :content_checksum_data
+ attr_reader :attributes_checksum_data
attr_reader :is_binary
alias binary? is_binary
- def initialize(is_binary:, content: nil, filename: nil, attributes:, checksum_data: nil)
+ def initialize(is_binary:, content: nil, filename: nil, attributes:, content_checksum_data: nil, attributes_checksum_data: nil)
if content.nil? && filename.nil?
raise ArgumentError, '#initialize needs at least content or filename'
end
@is_binary = is_binary
@content = content
@filename = filename
@attributes = attributes
- @checksum_data = checksum_data
+ @content_checksum_data = content_checksum_data
+ @attributes_checksum_data = attributes_checksum_data
end
def content
if binary?
raise ArgumentError, 'cannot fetch content of binary item'
@@ -123,11 +125,12 @@
ProtoDocument.new(
is_binary: false,
content: parse_result.content,
attributes: parse_result.attributes,
- checksum_data: "content=#{parse_result.content},meta=#{parse_result.attributes_data}",
+ content_checksum_data: parse_result.content,
+ attributes_checksum_data: parse_result.attributes_data,
)
end
end
# Creates instances of klass corresponding to the files in dir_name. The
@@ -155,11 +158,17 @@
content = content_for(proto_doc, content_filename)
attributes = attributes_for(proto_doc, content_filename, meta_filename)
identifier = identifier_for(content_filename, meta_filename, dir_name)
- res << klass.new(content, attributes, identifier, checksum_data: proto_doc.checksum_data)
+ res << klass.new(
+ content,
+ attributes,
+ identifier,
+ content_checksum_data: proto_doc.content_checksum_data,
+ attributes_checksum_data: proto_doc.attributes_checksum_data,
+ )
end
end
res
end
@@ -356,10 +365,10 @@
# @return [Hash]
def parse_metadata(data, filename)
begin
meta = YAML.load(data) || {}
- rescue Exception => e
+ rescue => e
raise "Could not parse YAML for #{filename}: #{e.message}"
end
verify_meta(meta, filename)