Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/timecop/time_extensions.rb
Overview
:nodoc:
Class Method Summary collapse
- .closest_wday(wday) ⇒ Object
- .mock_date ⇒ Object
- .mocked_time_stack_item ⇒ Object
- .parse_with_mock_date(*args) ⇒ Object (also: parse)
- .strptime_with_mock_date(str = '-4712-01-01', fmt = '%F', start = Date::ITALY) ⇒ Object (also: strptime)
- .today_with_mock_date ⇒ Object (also: today)
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_date ⇒ Object
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_item ⇒ Object
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_date ⇒ Object 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 |