From: "mame (Yusuke Endoh)" Date: 2012-11-24T10:49:12+09:00 Subject: [ruby-core:49955] [ruby-trunk - Feature #7148][Assigned] Improved Tempfile w/o DelegateClass 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") #=> # 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/