module Mongoload::RelationsAccessorsWithAutoInclude
Private Class Methods
assign_missing_proxy_method(relation)
click to toggle source
# File lib/mongoload/patches/relations_accessors.rb, line 6 def self.assign_missing_proxy_method(relation) if relation.class == Mongoid::Relations::Targets::Enumerable relation.target.define_singleton_method :relation_metadata do relation.relation_metadata end relation.target.define_singleton_method :base do relation.base end end end
Private Instance Methods
get_relation(name, metadata, object, reload=false)
click to toggle source
Calls superclass method
# File lib/mongoload/patches/relations_accessors.rb, line 20 def get_relation(name, metadata, object, reload=false) # has_one and belongs_to will return the value immediately # while other relation are lazy if [Mongoid::Relations::Referenced::In, Mongoid::Relations::Referenced::One].include?(metadata.relation) Mongoload::RelationLoader.load(self, metadata) if !object.is_a?(metadata.klass) && ivar(name) == false end result = super result.tap do |relation| Mongoload::RelationsAccessorsWithAutoInclude.assign_missing_proxy_method(relation) end end