def write
FileUtils.mkdir_p(File.dirname(self.raw_path))
@created = !File.file?(self.raw_path)
if self.binary?
if File.file?(self.raw_path)
hash_old = hash_for_file(self.raw_path)
size_old = File.size(self.raw_path)
end
FileUtils.cp(@filenames[:last], self.raw_path)
@written = true
size_new = File.size(self.raw_path)
hash_new = hash_for_file(self.raw_path) if size_old == size_new
@modified = (size_old != size_new || hash_old != hash_new)
else
if File.file?(self.raw_path)
@old_content = File.read(self.raw_path)
end
File.open(self.raw_path, 'w') { |io| io.write(@content[:last]) }
@written = true
generate_diff
@modified = File.read(self.raw_path) != @old_content
end
end