# File lib/core/facets/file/atomic_open.rb, line 13 def self.atomic_open(file_name, mode="r", temp_dir=nil, &block) temp_dir = temp_dir || Dir.tmpdir temp_file = Tempfile.new("#{atomic_id}-" + basename(file_name), temp_dir) if File.exist?(file_name) FileUtils.cp(file_name, temp_file) end open(temp_file, mode, &block) FileUtils.cp(temp_file, file_name) end