Как создать временный каталог в Ruby красивым способом? Я также хотел бы удалить его автоматически при выходе из процесса. Спасибо!
Как создать temp dir в Ruby?
Ответ 1
См. документацию для tmpdir. Если метод mktmpdir
снабжен блоком, то временный dir будет удален при возврате блока. В вашем случае вы вызываете без удаления блока и дескриптора позже (= выход программы).
Что касается автоматического удаления при выходе, я думаю, что tmpdir не сделает этого для вас. Однако at_exit должно помочь.
В качестве примера Homebrew делает это следующим образом:
require 'tmpdir'
# rest omitted
TEST_TMPDIR = ENV.fetch("HOMEBREW_TEST_TMPDIR") do |k|
dir = Dir.mktmpdir("homebrew-tests-", ENV["HOMEBREW_TEMP"] || "/tmp")
at_exit { FileUtils.remove_entry(dir) }
ENV[k] = dir
end
Ответ 2
Используйте метод Dir.mktmpdir
, из stdlib