class File

Public Class Methods

transaction(directory, &blk) click to toggle source
# File lib/file-transaction.rb, line 45
def self.transaction(directory, &blk)
  raise "#{directory} is not a directory" unless File.directory?(directory)

  Dir.mktmpdir do |tmp_directory|
    FileTransaction.copy_files(directory, tmp_directory)
    blk.call(Pathname.new(tmp_directory))
    FileTransaction.copy_files(tmp_directory, directory)
  end
end