class Asperalm::TempFileManager

create a temp file name for a given folder files can be deleted on process exit by calling cleanup

Public Class Methods

new() click to toggle source
# File lib/asperalm/temp_file_manager.rb, line 10
def initialize
  @created_files=[]
end

Public Instance Methods

cleanup() click to toggle source

call this on process exit

# File lib/asperalm/temp_file_manager.rb, line 15
def cleanup
  @created_files.each do |filepath|
    File.delete(filepath) if File.file?(filepath)
  end
  @created_files=[]
end
new_file_path_global(base_name) click to toggle source

same as above but in global temp folder

# File lib/asperalm/temp_file_manager.rb, line 32
def new_file_path_global(base_name)
  username = Etc.getlogin || Etc.getpwuid(Process.uid).name || 'unknown_user' rescue 'unknown_user'
  return new_file_path_in_folder(Etc.systmpdir,base_name+'_'+username+'_')
end
new_file_path_in_folder(temp_folder,add_base='') click to toggle source

ensure that provided folder exists, or create it, generate a unique filename @return path to that unique file

# File lib/asperalm/temp_file_manager.rb, line 24
def new_file_path_in_folder(temp_folder,add_base='')
  FileUtils::mkdir_p(temp_folder) unless Dir.exist?(temp_folder)
  new_file=File.join(temp_folder,add_base+SecureRandom.uuid)
  @created_files.push(new_file)
  return new_file
end