Time.travel_to
Time.now # => Tue Nov 06 23:50:31 -0800 2007 Time.travel_to(1.day.ago) { Time.now } # => Mon Nov 05 23:50:47 -0800 2007
class Time class << self def travel_to(value, &block) self.offset = Time.now.utc - value.to_time.utc yield if block_given? ensure self.offset = nil end def now_with_time_travel now_without_time_travel - (traveling? ? offset : 0) end alias_method_chain :now, :time_travel private def traveling? offset end def offset Thread.current[:time_travel_offset] end def offset=(value) Thread.current[:time_travel_offset] = value end end # of class methods end
About this entry
You’re currently reading “Time.travel_to,” an entry on geeksomnia
- Published:
- 11.07.07 / 12am
- Category:
- Code
No comments
Jump to comment form | comments rss [?] | trackback uri [?]