Issue #7148 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)
Priority changed from Normal to Low
Target version set to next minor


----------------------------------------
Feature #7148: Improved Tempfile w/o DelegateClass
https://bugs.ruby-lang.org/issues/7148#change-33721

Author: Glass_saga (Masaki Matsushita)
Status: Assigned
Priority: Low
Assignee: matz (Yukihiro Matsumoto)
Category: lib
Target version: next minor


I propose improved Tempfile without DelegateClass().
Present Tempfile has following problems.

1) confusing inspect

t = Tempfile.new("foo") #=> #<File:/tmp/foo20121012-6762-12w11to>
t.is_a? File #=> false

2) #dup doesn't duplicate IO

t = Tempfile.new("foo")
t.dup.close
t.read #=> IOError: closed stream

3) finalizer performs unlink even when it has been duplicated

t = Tempfile.new("foo")
path = t.path #=> "/tmp/foo20121012-7533-1q537gq"
File.exist? path #=> true
tt = t.dup
t = nil
GC.start
File.exist? path #=> false

I think these problems caused by using DelegateClass().
Therefore, I made a patch to resolve the problems.
The patched Tempfile class is a subclass of File.


-- 
http://bugs.ruby-lang.org/