Tempfile.create('ファイル名')
一時ファイルの作成にはTempfileを使います。 一時ファイルは以下の条件で削除されてしまうので気をつけましょう。 1. closeが呼び出された時 2. GCが呼び出された時 3. Rubyのインタプリタ終了時(プロセス終了時)
require 'tempfile'
Tempfile.create('hoge') do |t|
p t.path
# => "/var/folders/00/3815xdpn6wjfhb5r082_xpfr0000gp/T/hoge20191012-60237-1iqvivb"
end
ブロックを出るときにcloseが呼び出されるので Tempfileで作成されたものはでた時点でなくなっています 1のcloseの条件にあてはまります
require 'tempfile'
hogePath = ''
Tempfile.create('hoge') do |t|
hogePath = t.path
File.exist?(hogePath)
# => true
end
File.exist?(hogePath)
# => false