Feature #1999
closedImproved Tempfile
Description
=begin
I've written an improved version of Tempfile. The changes are as follows:
-
Much better documentation.
-
A large unit test suite to prevent future regressions.
-
Fixes a bug in the finalizer: if one calls #unlink on a Tempfile, then recreates the same file outside Ruby, and then runs the garbage collector, then the Tempfile's finalizer will delete the newly created file even when it's not supposed to:
t = Tempfile.new('foo')
path = t.path
t.close
t.unlink
system("touch #{path}")
exit # Run finalizers=> The file as referred to by 'path' doesn't exist anymore.¶
The source code can be found here:
It's compatible with both 1.8 and 1.9.
The tests are here:
http://github.com/FooBarWidget/better/blob/232a0a4f68dab7950c06390fddb940e7af1ff607/test/tempfile_test.rb
http://github.com/FooBarWidget/better/blob/232a0a4f68dab7950c06390fddb940e7af1ff607/test/tempfile_unlink_on_exit_example.rb
http://github.com/FooBarWidget/better/blob/232a0a4f68dab7950c06390fddb940e7af1ff607/test/tempfile_explicit_unlink_example.rb
http://github.com/FooBarWidget/better/blob/232a0a4f68dab7950c06390fddb940e7af1ff607/test/tempfile_explicit_close_and_unlink_example.rb
=end
Files