module ActiveAny::Associations

Public Instance Methods

association(name) click to toggle source
# File lib/active_any/associations.rb, line 54
def association(name)
  association = association_instance_get(name)

  if association.nil?
    reflection = self.class._reflect_on_association(name)
    raise AssociationNotFoundError.new(self, name) unless reflection

    association = reflection.association_class.new(self, reflection)
    association_instance_set(name, association)
  end

  association
end
initialize_dup(*) click to toggle source
Calls superclass method
# File lib/active_any/associations.rb, line 49
def initialize_dup(*)
  @association_cache = {}
  super
end

Private Instance Methods

association_cache() click to toggle source
# File lib/active_any/associations.rb, line 75
def association_cache
  @association_cache ||= {}
end
association_instance_get(name) click to toggle source
# File lib/active_any/associations.rb, line 79
def association_instance_get(name)
  association_cache[name]
end
association_instance_set(name, association) click to toggle source
# File lib/active_any/associations.rb, line 83
def association_instance_set(name, association)
  association_cache[name] = association
end
init_internals(*) click to toggle source
Calls superclass method
# File lib/active_any/associations.rb, line 70
def init_internals(*)
  @association_cache = {}
  super
end