From 6997109fcaef0567f176e53dfc092aecc49f9ece Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Tue, 8 Sep 2020 12:02:56 -0700 Subject: [PATCH] [ruby/tempfile] Revert Tempfile.open unlinking the file Document difference in behavior between Tempfile.open and Tempfile.create. https://github.com/ruby/tempfile/commit/426d6f887f --- lib/tempfile.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/tempfile.rb b/lib/tempfile.rb index 4148d30a86..5f8a345bee 100644 --- a/lib/tempfile.rb +++ b/lib/tempfile.rb @@ -270,6 +270,13 @@ class Tempfile < DelegateClass(File) # object will be automatically closed after the block terminates. # The call returns the value of the block. # + # Unlike Tempfile.create, Tempfile.open when called with a block + # does not unlink the temporary file when the block exits. When using + # Tempfile.open, the temporary file is not unlinked from the file + # system unless Tempfile#unlink or Tempfile#close! is called directly, + # or until the Tempfile instance is garbage collected. Due to this, + # most callers of Tempfile.open with a block should use Tempfile.create instead. + # # In any case, all arguments (*args) will be passed to Tempfile.new. # # Tempfile.open('foo', '/home/temp') do |f| @@ -290,7 +297,7 @@ class Tempfile < DelegateClass(File) begin yield(tempfile) ensure - tempfile.close! + tempfile.close end else tempfile