簡単な形式では、 data.csvのローカル コピーが1 時間以上経過している場合に、Web サイトのアカウントからファイルを再ダウンロードします。
# Mission: make sure data*.csv is most current whenever called
def updateData
return if File.exists?("data.csv") && (Time.now - File::Stat.new("data.csv").mtime) < 3600
$agent = Mechanize.new
$agent.pluggable_parser.default = Mechanize::Download
$page = $agent.get("http://website.com/login.jsp")
# login etc.
$agent.get("/getdata!downLoad.action").save("data.csv")
end
ただし、私のデータの更新は毎日 3 回 (16:45、18:45、および 22:45) のみ公開されるとのことでした。
質問: コピーが最終更新時刻 (昨日を含む) よりも古い場合にのみ、更新を取得するようにコードをよりインテリジェントにするにはどうすればよいですか?
いくつかの配列["16:45", "18:45", "22:45"]
が役立つ可能性がありますが、Ruby で次に何をするかはわかりません。