Class: RiCal::PropertyValue::RecurrenceRule::OccurrenceIncrementer::ByMonthIncrementer
- Inherits:
-
ListIncrementer
- Object
- RiCal::PropertyValue::RecurrenceRule::OccurrenceIncrementer
- ListIncrementer
- RiCal::PropertyValue::RecurrenceRule::OccurrenceIncrementer::ByMonthIncrementer
- Defined in:
- lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
Overview
:nodoc:
Instance Attribute Summary
Attributes inherited from ListIncrementer
#cycle_start, #list, #occurrences, #outer_occurrence
Attributes inherited from RiCal::PropertyValue::RecurrenceRule::OccurrenceIncrementer
#contains_daily_incrementer, #contains_weeknum_incrementer, #current_occurrence, #leaf_iterator, #outer_incrementers, #outer_range, #sub_cycle_incrementer
Class Method Summary collapse
-
.for_rrule(rrule) ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #advance_cycle(date_time) ⇒ Object
- #end_of_occurrence(date_time) ⇒ Object
- #occurrences_for(date_time) ⇒ Object
- #range_advance(date_time) ⇒ Object
- #start_of_cycle(date_time) ⇒ Object
- #varying_time_attribute ⇒ Object
Methods inherited from ListIncrementer
#candidate_acceptable?, conditional_incrementer, #cycle_adjust, #first_within_outer_cycle, #get_next_occurrences, #initialize, #next_candidate, #next_cycle, #next_in_list, #occurrences_within, #unneeded?
Methods inherited from RiCal::PropertyValue::RecurrenceRule::OccurrenceIncrementer
#add_outer_incrementer, #contains_daily_incrementer?, #contains_weeknum_incrementer?, #daily_incrementer?, #first_sub_occurrence, from_rrule, #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::OccurrenceIncrementer::ListIncrementer
Class Method Details
.for_rrule(rrule) ⇒ Object
:nodoc:
9 10 11 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 9 def self.for_rrule(rrule) conditional_incrementer(rrule, :bymonth, MonthlyIncrementer) end |
Instance Method Details
#advance_cycle(date_time) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 37 def advance_cycle(date_time) if contains_daily_incrementer? first_day_of_year(advance_year(date_time)) else advance_year(date_time).change(:month => 1) end end |
#end_of_occurrence(date_time) ⇒ Object
45 46 47 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 45 def end_of_occurrence(date_time) date_time.end_of_month end |
#occurrences_for(date_time) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 13 def occurrences_for(date_time) if contains_daily_incrementer? list.map {|value| date_time.change(:month => value, :day => 1)} else list.map {|value| date_time.in_month(value)} end end |
#range_advance(date_time) ⇒ Object
21 22 23 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 21 def range_advance(date_time) advance_year(date_time) end |
#start_of_cycle(date_time) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 25 def start_of_cycle(date_time) if contains_daily_incrementer? date_time.change(:month => 1, :day => 1) else date_time.change(:month => 1) end end |
#varying_time_attribute ⇒ Object
33 34 35 |
# File 'lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb', line 33 def :month end |