module MongoidOccurrenceViews::Event::Occurrence
Constants
- SCHEDULE_DURATION
Public Class Methods
included(base)
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 6 def self.included(base) base.include MongoidOccurrenceViews::Event::HasOccurrenceScopes base.extend ClassMethods end
Public Instance Methods
all_day()
click to toggle source
Calls superclass method
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 41 def all_day return super unless dtstart.present? && dtend.present? return super unless super.nil? dtstart.to_i == dtstart.beginning_of_day.to_i && dtend.to_i == dtend.end_of_day.to_i end
Also aliased as: all_day?
recurring?()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 50 def recurring? schedule.present? end
schedule_dtend()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 54 def schedule_dtend read_attribute(:schedule_dtend) || (dtstart.try(:to_time) || Time.now) + SCHEDULE_DURATION end
Private Instance Methods
adjust_dates_for_all_day()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 64 def adjust_dates_for_all_day return unless all_day? write_attribute(:dtstart, dtstart.try(:beginning_of_day)) write_attribute(:dtend, dtend.try(:end_of_day)) end
assign_daily_occurrences()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 71 def assign_daily_occurrences self.daily_occurrences = daily_occurrences_from_schedule + daily_occurrences_from_date_range end
daily_occurrences_from_date_range()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 86 def daily_occurrences_from_date_range return [] if recurring? date_range = Range.new(dtstart.to_date, dtend.to_date) is_single_day = (date_range.first == date_range.last) date_range.map do |date| occurence_dtstart = is_single_day || date == date_range.first ? dtstart : date.beginning_of_day occurence_dtend = is_single_day || date == date_range.last ? dtend : date.end_of_day relations['daily_occurrences'].klass.new( dtstart: occurence_dtstart, dtend: occurence_dtend ) end.compact end
daily_occurrences_from_schedule()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 75 def daily_occurrences_from_schedule return [] unless recurring? schedule.occurrences(schedule_dtend).map do |occurrence| relations['daily_occurrences'].klass.new( dtstart: occurrence.start_time, dtend: occurrence.end_time.change(hour: dtend.hour, min: dtend.minute) ) end.compact end
nil_schedule()
click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 60 def nil_schedule self.schedule = nil end