Module: Roo::Tempdir

Included in:
Excelx, OpenOffice
Defined in:
lib/roo/tempdir.rb

Instance Method Summary collapse

Instance Method Details

#finalize_tempdirs(object_id) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/roo/tempdir.rb', line 3

def finalize_tempdirs(object_id)
  if @tempdirs && (dirs_to_remove = @tempdirs[object_id])
    @tempdirs.delete(object_id)
    dirs_to_remove.each do |dir|
      ::FileUtils.remove_entry(dir)
    end
  end
end

#make_tempdir(object, prefix, root) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/roo/tempdir.rb', line 12

def make_tempdir(object, prefix, root)
  root ||= ENV["ROO_TMP"]
  # NOTE: This folder is cleaned up by finalize_tempdirs.
  ::Dir.mktmpdir("#{Roo::TEMP_PREFIX}#{prefix}", root).tap do |tmpdir|
    @tempdirs ||= Hash.new { |h, k| h[k] = [] }
    @tempdirs[object.object_id] << tmpdir
  end
end