Sha256: b2f472cde96aa228014d033023e17efbdac4fa3ac6d97a7dcba2ea7b8984d46c

Contents?: true

Size: 1.41 KB

Versions: 14

Compression:

Stored size: 1.41 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 OccurrenceIncrementer # :nodoc:
        class ByMonthIncrementer < ListIncrementer #:nodoc:

          def self.for_rrule(rrule)
            conditional_incrementer(rrule, :bymonth, MonthlyIncrementer)
          end

          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

          def range_advance(date_time)
            advance_year(date_time)
          end

          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

          def varying_time_attribute
            :month
          end

          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

          def end_of_occurrence(date_time)
            date_time.end_of_month
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 7 rubygems

Version Path
demingfactor-ri_cal-0.10.0 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
demingfactor-ri_cal-0.9.0 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
rubyredrick-ri_cal-0.8.4 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
awallis-ri_cal-0.8.8 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
justinsoong-ri_cal-0.8.9 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
justinsoong-ri_cal-0.8.8 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
micahwedemeyer-ri_cal-0.8.10 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
micahwedemeyer-ri_cal-0.8.9 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
ri_cal-0.8.8 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
ri_cal-0.8.7 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
ri_cal-0.8.6 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
miguelbaldi-ri_cal-0.1 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
ri_cal-0.8.5 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb
ri_cal-0.8.4 lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_month_incrementer.rb