Module: WebTranslateIt::Safe::TmpFile

Defined in:
lib/web_translate_it/safe/tmp_file.rb

Class Method Summary collapse

Class Method Details

.cleanupObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/web_translate_it/safe/tmp_file.rb', line 13

def self.cleanup
  begin
    FileUtils.remove_entry_secure tmproot
  rescue ArgumentError => e
    raise unless e.message.include?('parent directory is world writable')

    puts <<~ERR


      ********************************************************************************
      It looks like you have wrong permissions on your TEMP directory.  The usual
      case is when you have world writable TEMP directory withOUT the sticky bit.

      Try "chmod +t" on it.

      ********************************************************************************

    ERR
    raise
  end
  @tmproot = nil
end

.create(name) {|file| ... } ⇒ Object

Yields:

  • (file)


36
37
38
39
40
41
42
43
44
45
46
# File 'lib/web_translate_it/safe/tmp_file.rb', line 36

def self.create(name)
  # create temp directory

  file = Tempfile.new(name, tmproot)

  yield file

  file.close
  @keep_files << file # so that it will not get gcollected and removed from filesystem until the end
  file.path
end

.tmprootObject



9
10
11
# File 'lib/web_translate_it/safe/tmp_file.rb', line 9

def self.tmproot
  @tmproot ||= Dir.mktmpdir
end