我在內存中有一個html報告,並希望將其顯示給用戶而不將報告保存到磁盤。我現在不必擔心窗口,所以我一直在用ruby製作tmp文件,並使用系統open
來顯示文件。Ruby:顯示內存中的HTML文件而不將其保存到磁盤
report_file = Tempfile.new([report.name, report.extension])
report_file.write(report.text)
system "open #{report_file.path}"
雖然這會奏效,它不會因爲臨時文件從存儲器之前Safari /鉻實際上可以讀取數據(一旦命令系統返回清除open
回報不考慮Safari瀏覽器/ Chrome瀏覽器/實際讀取數據所需的時間量等)。爲了解決這個問題,我一直在open
之後使用sleep 60
。
我的問題是這樣的:有沒有更好的方式來顯示一個HTML文件給用戶而不保存它比使用tmpfiles?如果沒有,有沒有辦法等待safari/chrome /等。讀取文件時不使用sleep
調用?
爲什麼你想避免臨時文件?我能想到的唯一選擇是製作一個GUI應用程序並嵌入一個HTML渲染組件,這對於顯示報告來說是很多工作。 – millimoose
不避免臨時文件,他們只是有限制,要求其他解決方案或解決臨時文件的限制。編寫一個GUI將超架構一個解決方案。 – Schneems
哦,Ruby的臨時文件不能設置爲*不自動刪除?奇。您可以嘗試使用'system'mktemp -t someprefix''來獲取臨時文件名,或者尋找一個到'mkstemp'的接口。 – millimoose