lib/nanoc/data_sources/filesystem.rb in nanoc-4.0.0b3 vs lib/nanoc/data_sources/filesystem.rb in nanoc-4.0.0b4

- old
+ new

@@ -43,11 +43,11 @@ # # @see Nanoc::DataSources::Filesystem#load_objects def load_objects(dir_name, kind, klass) res = [] - return [] if dir_name.nil? + return [] if dir_name.nil? all_split_files_in(dir_name).each do |base_filename, (meta_ext, content_exts)| content_exts.each do |content_ext| # Get filenames meta_filename = filename_for(base_filename, meta_ext) @@ -71,14 +71,14 @@ meta_filename: meta_filename, extension: content_filename ? ext_of(content_filename)[1..-1] : nil, }.merge(meta) # Get identifier - if meta_filename - identifier = identifier_for_filename(meta_filename[dir_name.length..-1]) - elsif content_filename + if content_filename identifier = identifier_for_filename(content_filename[dir_name.length..-1]) + elsif meta_filename + identifier = identifier_for_filename(meta_filename[dir_name.length..-1]) else raise 'meta_filename and content_filename are both nil' end # Get modification times @@ -91,15 +91,22 @@ elsif content_mtime mtime = content_mtime else raise 'meta_mtime and content_mtime are both nil' end + attributes[:mtime] = mtime - # Create layout object - res << klass.new( - content_or_filename, attributes, identifier, - binary: is_binary, mtime: mtime - ) + # Create content + full_content_filename = content_filename && File.expand_path(content_filename) + content = + if is_binary + Nanoc::Int::BinaryContent.new(full_content_filename) + else + Nanoc::Int::TextualContent.new(content_or_filename, filename: full_content_filename) + end + + # Create object + res << klass.new(content, attributes, identifier) end end res end