class Chronic::RepeaterMonthName

:nodoc:

def index

def index
  symbol_to_number(@type)
end

def initialize(type)

def initialize(type)
  super
  @current_month_begin = nil
end

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

def symbol_to_number(sym)

def symbol_to_number(sym)
  MONTHS[sym] || raise("Invalid symbol specified")
end

def this(pointer = :future)

def this(pointer = :future)
  super
  case pointer
  when :past
    self.next(pointer)
  when :future, :none
    self.next(:none)
  end
end

def to_s

def to_s
  super << '-monthname-' << @type.to_s
end

def width

def width
  MONTH_SECONDS
end