RubyにはTempfileという便利なクラスがある。これは次のように定義されていて。
class Tempfile < DelegateClass(File) end
作成されたファイル名
これで定義されているのでファイル名は
TempFile#path
で取得することが出来る
ただし、close前は無理
f = Tempfile.new("test") f.puts .... f.close
Tempfile#closeしないと中身取れなかった。どのタイミングでファイルに書き込まれるかわからない。flush/closeのタイミングで書きだされた以降しか取れないので注意
ブロックで使う場合は open
Tempfile.open("test"){|f| f.puts .... }
2015-04-20
若干の記述を変更
DelegateClassってなに?
ところで、DelegateClassってなに?みたところ委譲のDelagete パターンに見えるけど。。。