class Timecop::TimeStackItem
def parse_time(*args)
def parse_time(*args) arg = args.shift if arg.is_a?(Time) arg elsif Object.const_defined?(:DateTime) && arg.is_a?(DateTime) time_klass.at(arg.to_time.to_f).getlocal elsif Object.const_defined?(:Date) && arg.is_a?(Date) time_klass.local(arg.year, arg.month, arg.day, 0, 0, 0) elsif args.empty? && (arg.kind_of?(Integer) || arg.kind_of?(Float)) time_klass.now + arg elsif arg.nil? time_klass.now else if arg.is_a?(String) && Time.respond_to?(:parse) time_klass.parse(arg) else # we'll just assume it's a list of y/m/d/h/m/s year = arg || 2000 month = args.shift || 1 day = args.shift || 1 hour = args.shift || 0 minute = args.shift || 0 second = args.shift || 0 time_klass.local(year, month, day, hour, minute, second) end end end