それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

rubyの tempfileの ファイル名

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 パターンに見えるけど。。。