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)