Summary
Tmptation provides classes that help safely manipulate temporary files and directories. Especially useful for use in tests.
Features
- easy garbage collection of all created tmp files and dirs with
.delete_all - safe deletion - will refuse to delete non-tmp paths (as determined by
Dir.tmpdir)
Examples
# TmpFile is a subclass of Tempfile, with a few additions
file = Tmptation::TmpFile.new('name', 'contents')
file.path.exist? #=> true
file.closed? #=> false
file.read #=> "contents"
Tmptation::TmpFile.delete_all
file.path.exist? #=> false
file.closed? #=> true
# TmpDir behaves like Pathname, with a few additions
path = Tmptation::TmpDir.new
path.exist? #=> true
Tmptation::TmpDir.delete_all
path.exist? #=> falseMixins
Tmptation also contains two mixins, SafeDeletable and SubclassTracking.
They might be useful on their own. See the inline docs for more details.
Protip
If you use Tmptation in tests, add TmpFile.delete_all and TmpDir.delete_all
to your global teardown method:
class MiniTest::Unit::TestCase
def teardown
TmpFile.delete_all
TmpDir.delete_all
end
end