class PostRunner::BackedUpFile

BackUpFile is a specialized version of File that creates a copy on

Public Class Methods

open(filename, mode = 'r', *opt, &block) click to toggle source
Calls superclass method
# File lib/postrunner/BackedUpFile.rb, line 18
def BackedUpFile.open(filename, mode = 'r', *opt, &block)
  # If the file is opened for writing we create a backup file.
  create_backup_file(filename) if mode.include?('w') || mode.include?('a')
  super
end
write(filename, string) click to toggle source
Calls superclass method
# File lib/postrunner/BackedUpFile.rb, line 24
def BackedUpFile.write(filename, string)
  create_backup_file(filename)
  super
end

Private Class Methods

create_backup_file(filename) click to toggle source
# File lib/postrunner/BackedUpFile.rb, line 31
def BackedUpFile.create_backup_file(filename)
  bak_file = filename + '.bak'

  # Delete the backup file if it exists.
  if File.exist?(bak_file)
    begin
      File.delete(bak_file)
    rescue SystemCallError
      Log.fatal "Cannote remove backup file '#{bak_file}': #{$!}"
    end
  end

  # Rename the old file to <filename>.bak
  if File.exist?(filename)
    begin
      File.rename(filename, bak_file)
    rescue SystemCallError
      Log.fatal "Cannot rename file '#{filename}' to '#{bak_file}': #{$!}"
    end
  end
end