Sha256: adc1447b1991e0d425d92ac2d009d0082224557dffca9c84076958701572d8df
Contents?: true
Size: 758 Bytes
Versions: 3
Compression:
Stored size: 758 Bytes
Contents
module Roo module Tempdir def finalize_tempdirs(object_id) if @tempdirs && (dirs_to_remove = @tempdirs[object_id]) @tempdirs[object_id] = nil dirs_to_remove.each do |dir| ::FileUtils.remove_entry(dir) end end end def make_tempdir(object, prefix, root) root ||= ENV['ROO_TMP'] # folder is cleaned up in .finalize_tempdirs ::Dir.mktmpdir("#{Roo::TEMP_PREFIX}#{prefix}", root).tap do |tmpdir| @tempdirs ||= {} if @tempdirs[object.object_id] @tempdirs[object.object_id] << tmpdir else @tempdirs[object.object_id] = [tmpdir] ObjectSpace.define_finalizer(object, method(:finalize_tempdirs)) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
roo-2.6.0 | lib/roo/tempdir.rb |
roo-2.5.1 | lib/roo/tempdir.rb |
roo-2.5.0 | lib/roo/tempdir.rb |