[ruby/tempfile] Make Tempfile#open return the underlying File

Add test for this behavior.

https://github.com/ruby/tempfile/commit/0ca31a6b8d
This commit is contained in:
Jeremy Evans 2023-11-08 08:35:16 -08:00 коммит произвёл git
Родитель eb2abc3f16
Коммит ddd99a5290
2 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -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:

Просмотреть файл

@ -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'])