Sha256: 8788d524046b2723c1a1b6ce7885fc9ea88ec497c191ca3821c51d5ff41564d0
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Nanoc::Int # @api private class ItemRepWriter TMP_TEXT_ITEMS_DIR = 'text_items' def write(item_rep, raw_path) # Create parent directory FileUtils.mkdir_p(File.dirname(raw_path)) # Check if file will be created is_created = !File.file?(raw_path) # Notify Nanoc::Int::NotificationCenter.post( :will_write_rep, item_rep, raw_path) content = item_rep.content_snapshots[:last] if content.binary? temp_path = content.filename else temp_path = temp_filename File.write(temp_path, content.string) end # Check whether content was modified is_modified = is_created || !FileUtils.identical?(raw_path, temp_path) # Write FileUtils.cp(temp_path, raw_path) if is_modified # Notify Nanoc::Int::NotificationCenter.post( :rep_written, item_rep, raw_path, is_created, is_modified) end def temp_filename Nanoc::Int::TempFilenameFactory.instance.create(TMP_TEXT_ITEMS_DIR) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nanoc-4.0.0b4 | lib/nanoc/base/services/item_rep_writer.rb |