Skip to content

Commit 0ca31a6

Browse files
committed
Make Tempfile#open return the underlying File
Add test for this behavior.
1 parent dafabf9 commit 0ca31a6

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

lib/tempfile.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ def open
191191
mode = @mode & ~(File::CREAT|File::EXCL)
192192
__setobj__(File.open(__getobj__.path, mode, **@opts))
193193
ObjectSpace.define_finalizer(self, Closer.new(__getobj__))
194+
__getobj__
194195
end
195196

196197
def _close # :nodoc:

test/test_tempfile.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,14 @@ def test_create_default_basename
378378
assert_file.not_exist?(path)
379379
end
380380

381+
def test_open
382+
Tempfile.open {|f|
383+
file = f.open
384+
assert_kind_of File, file
385+
assert_equal f.to_i, file.to_i
386+
}
387+
end
388+
381389
def test_open_traversal_dir
382390
assert_mktmpdir_traversal do |traversal_path|
383391
t = Tempfile.open([traversal_path, 'foo'])

0 commit comments

Comments
 (0)