Issue #7148 has been updated by Masaki Matsushita.


I think the problem you faced was resolved at r50118, wasn't it?

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

* Author: Masaki Matsushita
* Status: Assigned
* Priority: Low
* Assignee: Yukihiro Matsumoto
----------------------------------------
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.

---Files--------------------------------
patch.diff (3.52 KB)


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