Ruby Tips!

RubyのTipsを紹介します

一時ファイルを作成する

Rubyで一時ファイルを作成するにはtempfileライブラリが利用できる。

Tempfile.newは一時ファイルを作成するメソッドで、一時ファイルのFileオブジェクトを返す。一時ファイルはFileオブジェクトがガーベジコレクションされたタイミングで自動的に削除されることになっているが、以下のコードでは安全のため一時ファイルの後始末も自分で明示的に行っている。

require 'tempfile'

tmp = Tempfile.new('foo')
p tmp.path #=> "/tmp/foo20140323-9190-1ircig0"
begin
  # do something using tmp
ensure
  tmp.close
  tmp.delete
end

一時ファイルの作成先はデフォルトではDir.tmpdirのディレクトリになる。一時ファイルを作成するディレクトリは第2引数で指定することができる。

require 'tempfile'
tmp = Tempfile.new('foo', '/home/rubytips86')
p tmp.path #=> "/home/rubytips86/foo20140323-9225-sze8kv"