class File

Public Class Methods

write_with_backup(path) { |io| ... } click to toggle source

Equivalent to File::open with an associated block, but moves any existing file with the same name to the side first.

# File lib/inline.rb, line 872
def self.write_with_backup(path) # returns true if file already existed

  # move previous version to the side if it exists
  renamed = false
  if test ?f, path then
    renamed = true
    File.rename path, path + ".old"
  end

  File.open(path, "w") do |io|
    yield(io)
  end

  return renamed
end