TimeFreeze
Super simple library for freezing time consistently and without any dependencies
TimeFreeze.freeze!(Time.mktime(2001,12,30,13,45)) do
Time.now # => "30th December 2001, 13:45"
Date.today # => "30th December 2001"
DateTime.now # => "30th December 2001, 13:45"
end
Or for convenience you can use Time.freeze! rather than TimeFreeze.freeze!
Time.freeze!(Time.mktime(2001,12,30,13,45)) do
Time.now # => "30th December 2001, 13:45"
Date.today # => "30th December 2001"
DateTime.now # => "30th December 2001, 13:45"
end
The code is simple and clean, and is error tolerant, no fears that the time will not be reset afterwards.