module TimeWarpAbility

Public Instance Methods

pretend_now_is(*args) { || ... } click to toggle source
# File lib/time_warp.rb, line 9
def pretend_now_is(*args)
  Time.testing_offset = Time.now - time_from(*args)
  if block_given?
    begin
      yield
    ensure
      reset_to_real_time
    end
  end
end
reset_to_real_time() click to toggle source
# File lib/time_warp.rb, line 5
def reset_to_real_time
  Time.testing_offset = 0
end

Private Instance Methods

time_from(*args) click to toggle source
# File lib/time_warp.rb, line 22
def time_from(*args)
  return args[0] if 1 == args.size && args[0].is_a?(Time)
  return args[0].to_time if 1 == args.size && args[0].respond_to?(:to_time)  # For example, if it's a Date.
  Time.utc(*args)
end