From: Hongli Lai Date: 2009-08-26T17:16:32+09:00 Subject: [ruby-core:25131] [Feature #1999] Improved Tempfile 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 ---------------------------------------- http://redmine.ruby-lang.org