Project

General

Profile

Actions

Feature #1999

closed

Improved Tempfile

Added by hongli (Hongli Lai) over 14 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
[ruby-core:25131]

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:

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
=end


Files

tempfile-creation-error.diff (883 Bytes) tempfile-creation-error.diff hongli (Hongli Lai), 08/29/2009 02:49 AM

Related issues 1 (0 open1 closed)

Related to Ruby master - Feature #2166: Add CreationErrorRejectedmame (Yusuke Endoh)10/01/2009Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0