Sha256: cacdf11f7e5d2a6c426e385ae8e16dc09fff981c028e14cee1e285324009644b
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module RiCal class PropertyValue class RecurrenceRule < PropertyValue #- ©2009 Rick DeNatale #- All rights reserved. Refer to the file README.txt for the license # class NegativeSetposEnumerator < Enumerator # :nodoc: def initialize(recurrence_rule, component, setpos_list) super @current_set = [] @valids = [] end def next_occurrence while true result = advance if result >= start_time @count += 1 return recurrence_rule.exhausted?(@count, result) ? nil : result_hash(result) end end end def advance if @valids.empty? fill_set @valids = @setpos_list.map {|sp| sp < 0 ? @current_set.length + sp : sp - 1} current_time_index = @current_set.index(@start_time) if current_time_index @valids << current_time_index end @valids = @valids.uniq.sort end @current_set[@valids.shift] end def fill_set @current_set = [next_time] while true self.next_time = @incrementer.next_time(next_time) if recurrence_rule.in_same_set?(@current_set.last, next_time) @current_set << next_time else return end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubyredrick-ri_cal-0.0.2 | lib/ri_cal/property_value/recurrence_rule/negative_setpos_enumerator.rb |