moduleNanoc3::DataSourcesclassStatic< Nanoc3::DataSource
identifier :staticdefitems# Get prefix
prefix = config[:prefix]||'static'# Get all files under prefix dir
filenames =Dir[prefix +'/**/*'].select {|f|File.file?(f)}# Convert filenames to items
filenames.map do |filename|
attributes ={:extension=>File.extname(filename)[1..-1],:filename=> filename,}
identifier = filename[(prefix.length+1)..-1]+'/'
mtime =File.mtime(filename)
checksum = checksum_for(filename)Nanoc3::Item.new(
filename,
attributes,
identifier,:binary=>true,:mtime=> mtime,:checksum=> checksum
)endendprivate# Returns a checksum of the given filenames
# TODO un-duplicate this somewhere
defchecksum_for(*filenames)
filenames.flatten.map do |filename|
digest =Digest::SHA1.newFile.open(filename,'r')do |io|until io.eof
data = io.readpartial(2**10)
digest.update(data)endend
digest.hexdigest
end.join('-')endendend