module MongoidOccurrenceViews::Event::Occurrence::ClassMethods

Public Instance Methods

dtend_query_field() click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 36
def dtend_query_field
  :"daily_occurrences.de"
end
dtstart_query_field() click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 32
def dtstart_query_field
  :"daily_occurrences.ds"
end
embedded_in_event(options = {}) click to toggle source
# File lib/mongoid_occurrence_views/event/occurrence.rb, line 12
def embedded_in_event(options = {})
  field :dtstart, type: DateTime
  field :dtend, type: DateTime
  field :all_day, type: Boolean

  field :schedule, type: MongoidIceCubeExtension::Schedule
  field :schedule_dtend, type: Time

  embedded_in :event, class_name: options.fetch(:class_name, nil)
  embeds_many :daily_occurrences, class_name: 'MongoidOccurrenceViews::Event::Occurrence::DailyOccurrence', order: :dtstart.asc

  validates_presence_of :dtstart
  validates_presence_of :dtend

  before_validation :nil_schedule, unless: :recurring?

  after_validation :adjust_dates_for_all_day, if: :changed?
  after_validation :assign_daily_occurrences, if: :changed?
end