One method to save a time and restore it correctly:
def get_time_run ## File Access based on ## http://rubylearning.com/satishtalim/read_write_files.html if File.exists?('time.log') File.open('time.log', 'r') do |f| while line = f.gets @last_run = Time.at(line.to_i) end end end #Nice default if anything above failed @last_run ||= Time.at(0) end def set_run_time if File.exists?("run.time") File.delete("run.time") end File.open('time.log', 'w') do |f| f.puts Time.now.to_i end end
Previously I had missed off the to_i but that meant when the time was loaded it was a string representation of it, quite a bit trickier to convert back into a time object.