module MongoidOccurrences::Occurrence::HasSchedule

Constants

SCHEDULE_DURATION

Public Instance Methods

recurrence_rule() click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 28
def recurrence_rule
  schedule&.recurrence_rules&.first
end
recurrence_rule=(value) click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 32
def recurrence_rule=(value)
  case value
  when NilClass, 'null'
    @recurrence_rule = nil
    self.schedule = nil
  else
    @recurrence_rule = IceCube::Rule.from_hash(JSON.parse(value))
    self.schedule = IceCube::Schedule.new(schedule_dtstart) { |s| s.add_recurrence_rule(@recurrence_rule) }
  end
end
recurring?() click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 43
def recurring?
  schedule.present?
end
schedule_dtend() click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 23
def schedule_dtend
  read_attribute(:schedule_dtend) ||
    (schedule_dtstart + SCHEDULE_DURATION)
end
schedule_dtstart() click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 18
def schedule_dtstart
  read_attribute(:schedule_dtstart) ||
    (dtstart.try(:to_time) || Time.zone.now)
end

Private Instance Methods

nil_schedule() click to toggle source
# File lib/mongoid_occurrences/occurrence/has_schedule.rb, line 49
def nil_schedule
  self.schedule = nil
end