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