Class: Date

Inherits:
Object
  • Object
show all
Defined in:
lib/timecop/time_extensions.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.closest_wday(wday) ⇒ Object



80
81
82
83
84
85
# File 'lib/timecop/time_extensions.rb', line 80

def closest_wday(wday)
  today = Date.today
  result = today - today.wday
  result += 1 until wday == result.wday
  result
end

.mock_dateObject



31
32
33
# File 'lib/timecop/time_extensions.rb', line 31

def mock_date
  mocked_time_stack_item.nil? ? nil : mocked_time_stack_item.date(self)
end

.mocked_time_stack_itemObject



76
77
78
# File 'lib/timecop/time_extensions.rb', line 76

def mocked_time_stack_item
  Timecop.top_stack_item
end

.parse_with_mock_date(*args) ⇒ Object Also known as: parse



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/timecop/time_extensions.rb', line 56

def parse_with_mock_date(*args)
  parsed_date = parse_without_mock_date(*args)
  return parsed_date unless mocked_time_stack_item
  date_hash = Date._parse(*args)

  case
  when date_hash[:year] && date_hash[:mon]
    parsed_date
  when date_hash[:mon] && date_hash[:mday]
    Date.new(mocked_time_stack_item.year, date_hash[:mon], date_hash[:mday])
  when date_hash[:wday]
    closest_wday(date_hash[:wday])
  else
    parsed_date + mocked_time_stack_item.travel_offset_days
  end
end

.strptime_with_mock_date(str = '-4712-01-01', fmt = '%F', start = Date::ITALY) ⇒ Object Also known as: strptime



45
46
47
48
49
50
51
52
# File 'lib/timecop/time_extensions.rb', line 45

def strptime_with_mock_date(str = '-4712-01-01', fmt = '%F', start = Date::ITALY)
  unless start == Date::ITALY
    raise ArgumentError, "Timecop's #{self}::#{__method__} only " +
      "supports Date::ITALY for the start argument."
  end

  Time.strptime(str, fmt).to_date
end

.today_with_mock_dateObject Also known as: today



37
38
39
# File 'lib/timecop/time_extensions.rb', line 37

def today_with_mock_date
  mock_date || today_without_mock_date
end