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