lib/chronic/handlers.rb in chronic-0.9.0 vs lib/chronic/handlers.rb in chronic-0.9.1

- old
+ new

@@ -248,15 +248,11 @@ new_tokens = [tokens[1], tokens[0]] time_tokens = tokens.last(tokens.size - 2) handle_sm_sd(new_tokens + time_tokens, options) end - # Handle scalar-month/scalar-year - def handle_sm_sy(tokens, options) - month = tokens[0].get_tag(ScalarMonth).type - year = tokens[1].get_tag(ScalarYear).type - + def handle_year_and_month(year, month) if month == 12 next_month_year = year + 1 next_month_month = 1 else next_month_year = year @@ -269,10 +265,24 @@ rescue ArgumentError nil end end + # Handle scalar-month/scalar-year + def handle_sm_sy(tokens, options) + month = tokens[0].get_tag(ScalarMonth).type + year = tokens[1].get_tag(ScalarYear).type + handle_year_and_month(year, month) + end + + # Handle scalar-year/scalar-month + def handle_sy_sm(tokens, options) + year = tokens[0].get_tag(ScalarYear).type + month = tokens[1].get_tag(ScalarMonth).type + handle_year_and_month(year, month) + end + # Handle RepeaterDayName RepeaterMonthName OrdinalDay def handle_rdn_rmn_od(tokens, options) month = tokens[1].get_tag(RepeaterMonthName) day = tokens[2].get_tag(OrdinalDay).type time_tokens = tokens.last(tokens.size - 3) @@ -402,10 +412,9 @@ repeater.offset(span, distance, pointer) if repeater.respond_to?(:offset) end # Handle scalar/repeater/pointer def handle_s_r_p(tokens, options) - repeater = tokens[1].get_tag(Repeater) span = Span.new(self.now, self.now + 1) handle_srp(tokens, span, options) end