module Minidoc::Associations::ClassMethods
Public Instance Methods
associations()
click to toggle source
# File lib/minidoc/associations.rb, line 7 def associations @associations ||= {} end
belongs_to(association_name, options = {})
click to toggle source
Calls superclass method
# File lib/minidoc/associations.rb, line 11 def belongs_to(association_name, options = {}) options[:class_name] ||= "#{self.parent.name}::#{association_name.to_s.camelize}" association_name = association_name.to_sym associations[association_name] = options attribute "#{association_name}_id", BSON::ObjectId define_method("#{association_name}=") do |value| write_association(association_name, value) end define_method("#{association_name}_id=") do |value| instance_variable_set("@#{association_name}", nil) super(value) end define_method(association_name) do read_association(association_name) end define_method("#{association_name}!") do read_association(association_name) or raise Minidoc::DocumentNotFoundError end end