Module: Mongoid::RelationsDirtyTracking::ClassMethods
- Defined in:
- lib/mongoid/relations_dirty_tracking.rb
Instance Method Summary collapse
- #relations_dirty_tracking(options = {}) ⇒ Object
- #track_relation?(rel_name) ⇒ Boolean
- #tracked_relations ⇒ Object
Instance Method Details
#relations_dirty_tracking(options = {}) ⇒ Object
85 86 87 88 |
# File 'lib/mongoid/relations_dirty_tracking.rb', line 85 def relations_dirty_tracking( = {}) [:only] += [[:only] || []].flatten.map(&:to_s) [:except] += [[:except] || []].flatten.map(&:to_s) end |
#track_relation?(rel_name) ⇒ Boolean
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/mongoid/relations_dirty_tracking.rb', line 91 def track_relation?(rel_name) rel_name = rel_name.to_s = to_track = (![:only].blank? && [:only].include?(rel_name)) \ || ([:only].blank? && ![:except].include?(rel_name)) to_track && [Mongoid::Relations::Embedded::One, Mongoid::Relations::Embedded::Many, Mongoid::Relations::Referenced::One, Mongoid::Relations::Referenced::Many, Mongoid::Relations::Referenced::ManyToMany, Mongoid::Relations::Referenced::In].include?(relations[rel_name].try(:relation)) end |
#tracked_relations ⇒ Object
103 104 105 |
# File 'lib/mongoid/relations_dirty_tracking.rb', line 103 def tracked_relations @tracked_relations ||= relations.keys.select {|rel_name| track_relation?(rel_name) } end |