Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > tempfileライブラリ > Tempfileクラス > new

singleton method Tempfile.new

new(basename, tempdir = Dir::tmpdir) -> Tempfile[permalink][rdoc]
open(basename, tempdir = Dir::tmpdir) -> Tempfile
open(basename, tempdir = Dir::tmpdir) {|fp| ...} -> object

テンポラリファイルを作成し、それを表す Tempfile オブジェクトを生成して返します。 ファイル名のプレフィクスには指定された basename が使われます。 ファイルは指定された tempdir に作られます。 open にブロックを指定して呼び出した場合は、Tempfile オブジェクトを引数として ブロックを実行します。ブロックの実行が終了すると、ファイルは自動的に クローズされ、 ブロックの値をかえします。 new にブロックを指定した場合は無視されます。

[PARAM] basename:
ファイル名のプレフィクスを文字列で指定します。 文字列の配列を指定した場合、先頭の要素がファイル名のプレフィックス、次の要素が サフィックスとして使われます。
[PARAM] tempdir:
テンポラリファイルが作られるディレクトリです。 このデフォルト値は、Dir.tmpdir の値となります。

例:

require "tempfile"
t = Tempfile.open(['hoge', 'bar'])
p t.path                            #=> "/tmp/hoge20080518-6961-5fnk19-0bar"
t2 = Tempfile.open(['t', '.xml'])
p t2.path                           #=> "/tmp/t20080518-6961-xy2wvx-0.xml"

例:ブロックを与えた場合

require 'tempfile'

tf = Tempfile.open("temp"){|fp|
  fp.puts "hoge"
  fp
}
# テンポラリファイルへのパスを表示
p tf.path
p File.read(tf.path) #=> "hoge\n"