module Minidoc::Associations

Public Instance Methods

reload() click to toggle source
Calls superclass method
# File lib/minidoc/associations.rb, line 39
def reload
  clear_association_caches
  super
end

Private Instance Methods

clear_association_caches() click to toggle source
# File lib/minidoc/associations.rb, line 62
def clear_association_caches
  self.class.associations.each do |name, options|
    instance_variable_set("@#{name}", nil)
  end
end
read_association(name) click to toggle source
# File lib/minidoc/associations.rb, line 50
def read_association(name)
  return instance_variable_get("@#{name}") if instance_variable_get("@#{name}")

  options = self.class.associations[name]

  if (foreign_id = self["#{name}_id"])
    record = options[:class_name].constantize.find(foreign_id)
    instance_variable_set("@#{name}", record)
    record
  end
end
write_association(name, value) click to toggle source
# File lib/minidoc/associations.rb, line 46
def write_association(name, value)
  send("#{name}_id=", value ? value.id : nil)
end