Module: SpaceArchitect::AtomicWrite
- Defined in:
- lib/space_architect/atomic_write.rb
Class Method Summary collapse
Class Method Details
.write(path, content) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/space_architect/atomic_write.rb', line 9 def write(path, content) path = path.to_s dir = File.dirname(path) FileUtils.mkdir_p(dir) tmp_path = File.join(dir, ".#{File.basename(path)}.#{Process.pid}.tmp") File.write(tmp_path, content) File.rename(tmp_path, path) ensure FileUtils.rm_f(tmp_path) if defined?(tmp_path) && tmp_path && File.exist?(tmp_path) end |