TIL: tempfile in ruby, use it for easy garbage collection afterwards


Today, I was working on a script at work where I ultimately needed to export a 2MB file and although this isn’t a large file, I know I will forget about getting rid of it so while searching around, I came across tempfile.

Tempfile simply will be garbage collected at some time because the file is stored in /tmp and you can make your own copy if you need it. Here’s an example from the ruby docs:

require 'tempfile'

file = Tempfile.new('foo')
file.path      # => A unique filename in the OS's temp directory,
               #    e.g.: "/tmp/foo.24722.0"
               #    This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read      # => "hello world"
file.close
file.unlink    # deletes the temp file

Make sure to run file.unlink if you want it to be deleted right away.