module MongoidOccurrences::HasOccurrences
Public Class Methods
included(base)
click to toggle source
# File lib/mongoid_occurrences/has_occurrences.rb, line 3 def self.included(base) base.extend ClassMethods end
Public Instance Methods
assign_daily_occurrences!()
click to toggle source
# File lib/mongoid_occurrences/has_occurrences.rb, line 31 def assign_daily_occurrences! return self.daily_occurrences = nil if occurrences.blank? self.daily_occurrences = begin res = occurrences.select(&:append).flat_map(&:daily_occurrences) [occurrences.select(&:remove), occurrences.select(&:replace)].flatten.flat_map(&:daily_occurrences).each do |occurrence| res = res.reject { |res_occurrence| res_occurrence.overlaps?(occurrence) } end res += occurrences.select(&:replace).flat_map(&:daily_occurrences) res.sort end end
occurrences_cache_key()
click to toggle source
# File lib/mongoid_occurrences/has_occurrences.rb, line 26 def occurrences_cache_key last_timestamp = occurrences.unscoped.order(updated_at: :desc).limit(1).pluck(:updated_at).first "#{occurrences.unscoped.size}-#{last_timestamp.to_i}" end
Private Instance Methods
assign_occurrences_cache_key!()
click to toggle source
# File lib/mongoid_occurrences/has_occurrences.rb, line 48 def assign_occurrences_cache_key! self._previous_occurrences_cache_key = occurrences_cache_key end