Class: File

Inherits:
Object
  • Object
show all
Defined in:
lib/inline.rb

Class Method Summary collapse

Class Method Details

.write_with_backup(path) ⇒ Object

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



841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
# File 'lib/inline.rb', line 841

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