lib/chronic/repeaters/repeater_month_name.rb in pangel-chronic-0.3.0.3 vs lib/chronic/repeaters/repeater_month_name.rb in pangel-chronic-0.3.10

- old
+ new

@@ -1,98 +1,98 @@ class Chronic::RepeaterMonthName < Chronic::Repeater #:nodoc: - MONTH_SECONDS = 2_592_000 # 30 * 24 * 60 * 60 + MONTH_SECONDS = 2_592_000 # 30 * 24 * 60 * 60 - def initialize(type) - super - @current_month_begin = nil - end + def initialize(type) + super + @current_month_begin = nil + end - 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 - - Chronic::Span.new(@current_month_begin, Time.construct(next_month_year, next_month_month)) - end - - def this(pointer = :future) - super - - case pointer - when :past - self.next(pointer) - when :future, :none - self.next(:none) - end - end - - def width - MONTH_SECONDS - end - - def index - symbol_to_number(@type) - end - - def to_s - super << '-monthname-' << @type.to_s - end - - private - - def symbol_to_number(sym) - lookup = {:january => 1, - :february => 2, - :march => 3, - :april => 4, - :may => 5, - :june => 6, - :july => 7, - :august => 8, - :september => 9, - :october => 10, - :november => 11, - :december => 12} - lookup[sym] || raise("Invalid symbol specified") - end -end + 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 + + Chronic::Span.new(@current_month_begin, Time.construct(next_month_year, next_month_month)) + end + + def this(pointer = :future) + super + + case pointer + when :past + self.next(pointer) + when :future, :none + self.next(:none) + end + end + + def width + MONTH_SECONDS + end + + def index + symbol_to_number(@type) + end + + def to_s + super << '-monthname-' << @type.to_s + end + + private + + def symbol_to_number(sym) + lookup = {:january => 1, + :february => 2, + :march => 3, + :april => 4, + :may => 5, + :june => 6, + :july => 7, + :august => 8, + :september => 9, + :october => 10, + :november => 11, + :december => 12} + lookup[sym] || raise("Invalid symbol specified") + end +end \ No newline at end of file