class MongoidOccurrenceViews::Event::CreateOccurrencesOrderingView

Public Instance Methods

pipeline() click to toggle source
# File lib/mongoid_occurrence_views/event/create_occurrences_ordering_view.rb, line 8
def pipeline
  [add_fields].flatten
end
view_name() click to toggle source
# File lib/mongoid_occurrence_views/event/create_occurrences_ordering_view.rb, line 4
def view_name
  klass.occurrences_ordering_view_name
end

Private Instance Methods

add_fields() click to toggle source
# File lib/mongoid_occurrence_views/event/create_occurrences_ordering_view.rb, line 14
def add_fields
  { '$addFields': { '_dtstart': order_dtstart_field, '_dtend': order_dtend_field } }
end
order_dtend_field() click to toggle source
# File lib/mongoid_occurrence_views/event/create_occurrences_ordering_view.rb, line 24
def order_dtend_field
  max = "$#{occurrence_relations_chained.last}.de"
  occurrence_relations_chained.length.times { max = { '$max': max } }
  max
end
order_dtstart_field() click to toggle source
# File lib/mongoid_occurrence_views/event/create_occurrences_ordering_view.rb, line 18
def order_dtstart_field
  min = "$#{occurrence_relations_chained.last}.ds"
  occurrence_relations_chained.length.times { min = { '$min': min } }
  min
end