module Mongoid::RelationsDirtyTracking::ClassMethods
Public Instance Methods
relations_dirty_tracking(options = {})
click to toggle source
# File lib/mongoid/relations_dirty_tracking.rb, line 35 def relations_dirty_tracking(options = {}) relations_dirty_tracking_options[:only] += [options[:only] || []].flatten.map(&:to_s) relations_dirty_tracking_options[:except] += [options[:except] || []].flatten.map(&:to_s) end
track_relation?(rel_name)
click to toggle source
# File lib/mongoid/relations_dirty_tracking.rb, line 40 def track_relation?(rel_name) rel_name = rel_name.to_s options = relations_dirty_tracking_options to_track = (!options[:only].blank? && options[:only].include?(rel_name)) || (options[:only].blank? && !options[:except].include?(rel_name)) trackables = [Mongoid::Association::Embedded::EmbedsOne::Proxy, Mongoid::Association::Embedded::EmbedsMany::Proxy, Mongoid::Association::Referenced::HasOne::Proxy, Mongoid::Association::Referenced::HasMany::Proxy, Mongoid::Association::Referenced::HasAndBelongsToMany::Proxy, Mongoid::Association::Referenced::BelongsTo::Proxy] to_track && trackables.include?(relations[rel_name].try(:relation)) end
tracked_relations()
click to toggle source
# File lib/mongoid/relations_dirty_tracking.rb, line 56 def tracked_relations @tracked_relations ||= relations.keys.select { |rel_name| track_relation?(rel_name) } end