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