From: headius@... Date: 2015-05-29T13:58:25+00:00 Subject: [ruby-core:69418] [Ruby trunk - Feature #7148] Improved Tempfile w/o DelegateClass Issue #7148 has been updated by Charles Nutter. It doesn't sound like anyone opposes this idea, so are we just missing implementation? ---------------------------------------- Feature #7148: Improved Tempfile w/o DelegateClass https://bugs.ruby-lang.org/issues/7148#change-52690 * 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") #=> # 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/