@@ -19,6 +19,7 @@ def values_match(actual, expected)
19
19
end
20
20
21
21
def timetravel ( date , i , method ) ; i > 0 ? timetravel ( date . send ( method . to_sym ) , i - 1 , method ) : date ; end
22
+ def monthtravel ( date , i ) ; i != 0 ? Date . new ( date . year , date . month + i , -1 ) : date ; end
22
23
23
24
def convert_mock_values ( mock_data )
24
25
mock_data . map do |entry |
@@ -65,16 +66,16 @@ def convert_mock_value(value)
65
66
when /tomorrow/
66
67
timetravel ( Date . today , 1 , :next_day )
67
68
when /last month/
68
- timetravel ( Date . today , 1 , :prev_month )
69
+ monthtravel ( Date . today , - 1 )
69
70
when /next month/
70
- timetravel ( Date . today , 1 , :next_month )
71
+ monthtravel ( Date . today , 1 )
71
72
when /last year/
72
73
timetravel ( Date . today , 1 , :prev_year )
73
74
when /next year/
74
75
timetravel ( Date . today , 1 , :next_year )
75
76
when /\s *\d +\s +month(s)?\s +ago\s *?/
76
77
number_of_months = value . match ( /\d +/ ) [ 0 ] . to_i
77
- timetravel ( Date . today , number_of_months , :prev_month )
78
+ monthtravel ( Date . today , number_of_months * - 1 )
78
79
when /\s *\d +\s +day(s)?\s +ago\s */
79
80
number_of_days = value . match ( /\d +/ ) [ 0 ] . to_i
80
81
timetravel ( Date . today , number_of_days , :prev_day )
0 commit comments