module ActiveFedora::Associations
def association(name) #:nodoc:
Returns the association instance for the given name, instantiating it if it doesn't already exist
def association(name) #:nodoc: association = association_instance_get(name) if association.nil? reflection = self.class.reflect_on_association(name) association = reflection.association_class.new(self, reflection) if reflection association_instance_set(name, association) if association end association end
def association_instance_get(name)
def association_instance_get(name) raise "use a symbol" if name.is_a? String @association_cache[name] end
def association_instance_set(name, association)
def association_instance_set(name, association) @association_cache[name] = association end
def clear_association_cache #:nodoc:
Clears out the association cache.
def clear_association_cache #:nodoc: @association_cache.clear if persisted? end