aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/tempfile.rb1
-rw-r--r--test/test_tempfile.rb8
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/tempfile.rb b/lib/tempfile.rb
index d192bf3502..43174082a0 100644
--- a/lib/tempfile.rb
+++ b/lib/tempfile.rb
@@ -191,6 +191,7 @@ class Tempfile < DelegateClass(File)
mode = @mode & ~(File::CREAT|File::EXCL)
__setobj__(File.open(__getobj__.path, mode, **@opts))
ObjectSpace.define_finalizer(self, Closer.new(__getobj__))
+ __getobj__
end
def _close # :nodoc:
diff --git a/test/test_tempfile.rb b/test/test_tempfile.rb
index d5d684b016..eddbac5d75 100644
--- a/test/test_tempfile.rb
+++ b/test/test_tempfile.rb
@@ -378,6 +378,14 @@ puts Tempfile.new('foo').path
assert_file.not_exist?(path)
end
+ def test_open
+ Tempfile.open {|f|
+ file = f.open
+ assert_kind_of File, file
+ assert_equal f.to_i, file.to_i
+ }
+ end
+
def test_open_traversal_dir
assert_mktmpdir_traversal do |traversal_path|
t = Tempfile.open([traversal_path, 'foo'])