lib/mongo_mapper/plugins/associations.rb in mongo_mapper-0.7.6 vs lib/mongo_mapper/plugins/associations.rb in mongo_mapper-0.8.0

- old
+ new

@@ -1,9 +1,15 @@ +# encoding: UTF-8 module MongoMapper module Plugins module Associations module ClassMethods + def inherited(subclass) + subclass.associations = associations.dup + super + end + def belongs_to(association_id, options={}, &extension) create_association(:belongs_to, association_id, options, &extension) end def many(association_id, options={}, &extension) @@ -20,15 +26,10 @@ def associations=(hash) @associations = hash end - def inherited(subclass) - subclass.associations = associations.dup - super - end - private def create_association(type, name, options, &extension) association = Associations::Base.new(type, name, options, &extension) associations[association.name] = association @@ -65,11 +66,10 @@ module InstanceMethods def associations self.class.associations end - # @api private? def embedded_associations associations.select do |name, association| association.embeddable? end.map do |name, association| association @@ -79,36 +79,19 @@ def get_proxy(association) unless proxy = self.instance_variable_get(association.ivar) proxy = association.proxy_class.new(self, association) self.instance_variable_set(association.ivar, proxy) end - proxy end - def save_to_collection(options = {}) + def save_to_collection(options={}) super associations.each do |association_name, association| proxy = get_proxy(association) proxy.save_to_collection(options) if proxy.proxy_respond_to?(:save_to_collection) end end end - - autoload :Base, 'mongo_mapper/plugins/associations/base' - autoload :Collection, 'mongo_mapper/plugins/associations/collection' - autoload :EmbeddedCollection, 'mongo_mapper/plugins/associations/embedded_collection' - autoload :ManyDocumentsProxy, 'mongo_mapper/plugins/associations/many_documents_proxy' - autoload :BelongsToProxy, 'mongo_mapper/plugins/associations/belongs_to_proxy' - autoload :BelongsToPolymorphicProxy, 'mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy' - autoload :ManyPolymorphicProxy, 'mongo_mapper/plugins/associations/many_polymorphic_proxy' - autoload :ManyEmbeddedProxy, 'mongo_mapper/plugins/associations/many_embedded_proxy' - autoload :ManyEmbeddedPolymorphicProxy, 'mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy' - autoload :ManyDocumentsAsProxy, 'mongo_mapper/plugins/associations/many_documents_as_proxy' - autoload :OneProxy, 'mongo_mapper/plugins/associations/one_proxy' - autoload :OneEmbeddedProxy, 'mongo_mapper/plugins/associations/one_embedded_proxy' - autoload :InArrayProxy, 'mongo_mapper/plugins/associations/in_array_proxy' end end end - -require 'mongo_mapper/plugins/associations/proxy'