Hongli Lai wrote: > Feature #1999: Improved Tempfile > http://redmine.ruby-lang.org/issues/show/1999 > > Author: Hongli Lai > Status: Open, Priority: Normal > Category: lib > > 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: > > http://github.com/FooBarWidget/better/blob/232a0a4f68dab7950c06390fddb940e7af1ff607/lib/better/tempfile.rb > > 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 I ditched Tempfile altogether and wrote my own version: http://github.com/djberg96/file-temp Regards, Dan