class Chronic::RepeaterMonthName
def next(pointer)
def next(pointer) super if !@current_month_begin target_month = symbol_to_number(@type) case pointer when :future if @now.month < target_month @current_month_begin = Time.construct(@now.year, target_month) elsif @now.month > target_month @current_month_begin = Time.construct(@now.year + 1, target_month) end when :none if @now.month <= target_month @current_month_begin = Time.construct(@now.year, target_month) elsif @now.month > target_month @current_month_begin = Time.construct(@now.year + 1, target_month) end when :past if @now.month >= target_month @current_month_begin = Time.construct(@now.year, target_month) elsif @now.month < target_month @current_month_begin = Time.construct(@now.year - 1, target_month) end end @current_month_begin || raise("Current month should be set by now") else case pointer when :future @current_month_begin = Time.construct(@current_month_begin.year + 1, @current_month_begin.month) when :past @current_month_begin = Time.construct(@current_month_begin.year - 1, @current_month_begin.month) end end cur_month_year = @current_month_begin.year cur_month_month = @current_month_begin.month if cur_month_month == 12 next_month_year = cur_month_year + 1 next_month_month = 1 else next_month_year = cur_month_year next_month_month = cur_month_month + 1 end Span.new(@current_month_begin, Time.construct(next_month_year, next_month_month)) end