Class: RiCal::PropertyValue::RecurrenceRule::ByNumberedDayIncrementer

Inherits:
ListIncrementer show all
Defined in:
lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb

Overview

:nodoc:

Direct Known Subclasses

ByMonthdayIncrementer, ByYeardayIncrementer

Instance Attribute Summary

Attributes inherited from ListIncrementer

#cycle_start, #list, #occurrences, #outer_occurrence

Attributes inherited from OccurrenceIncrementer

#contains_daily_incrementer, #contains_weeknum_incrementer, #current_occurrence, #leaf_iterator, #outer_incrementers, #outer_range, #sub_cycle_incrementer

Instance Method Summary collapse

Methods inherited from ListIncrementer

conditional_incrementer, #cycle_adjust, #first_within_outer_cycle, #get_next_occurrences, #initialize, #next_candidate, #next_cycle, #next_in_list, #occurrences_within

Methods inherited from OccurrenceIncrementer

#add_outer_incrementer, #contains_daily_incrementer?, #contains_weeknum_incrementer?, #first_sub_occurrence, #in_outer_cycle?, #initialize, #next_cycle, #next_time, #outermost?, #short_name, #to_s, #update_cycle_range, #weeknum_incrementer?

Methods included from TimeManipulation

#advance_day, #advance_month, #advance_week, #advance_year, #first_day_of_month, #first_day_of_week, #first_day_of_year, #first_hour_of_day

Constructor Details

This class inherits a constructor from RiCal::PropertyValue::RecurrenceRule::ListIncrementer

Instance Method Details

#candidate_acceptible?(candidate) ⇒ Boolean

Returns:

  • (Boolean)


471
472
473
# File 'lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb', line 471

def candidate_acceptible?(candidate)
  list.any? {|by_part| by_part.include?(candidate)}
end

#daily_incrementer?Boolean

Returns:

  • (Boolean)


453
454
455
# File 'lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb', line 453

def daily_incrementer?
  true
end

#end_of_occurrence(date_time) ⇒ Object



467
468
469
# File 'lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb', line 467

def end_of_occurrence(date_time)
  date_time.end_of_day
end

#occurrences_for(date_time) ⇒ Object



457
458
459
460
461
462
463
464
465
# File 'lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb', line 457

def occurrences_for(date_time)
  if occurrences && @scoping_value == scope_of(date_time)
     occurrences
  else
    @scoping_value = scope_of(date_time)
    self.occurrences = list.map {|numbered_day| numbered_day.target_date_time_for(date_time)}.uniq.sort
    occurrences
  end
end