class MongoMapper::Plugins::Associations::ManyAssociation
Public Instance Methods
autosave?()
click to toggle source
# File lib/mongo_mapper/plugins/associations/many_association.rb, line 58 def autosave? options.fetch(:autosave, true) end
class_name()
click to toggle source
# File lib/mongo_mapper/plugins/associations/many_association.rb, line 7 def class_name @class_name ||= options[:class_name] || name.to_s.singularize.camelize end
proxy_class()
click to toggle source
hate this, need to revisit
# File lib/mongo_mapper/plugins/associations/many_association.rb, line 12 def proxy_class @proxy_class ||= if klass.embeddable? polymorphic? ? ManyEmbeddedPolymorphicProxy : ManyEmbeddedProxy else if polymorphic? ManyPolymorphicProxy elsif as? ManyDocumentsAsProxy elsif in_foreign_array? InForeignArrayProxy elsif in_array? InArrayProxy else ManyDocumentsProxy end end end
setup(model)
click to toggle source
# File lib/mongo_mapper/plugins/associations/many_association.rb, line 30 def setup(model) model.associations_module.module_eval(<<-end_eval, __FILE__, __LINE__ + 1) def #{name} get_proxy(associations[#{name.inspect}]).read end def #{name}=(value) get_proxy(associations[#{name.inspect}]).write(value) end end_eval association = self options = self.options model.before_destroy do if !association.embeddable? case options[:dependent] when :destroy self.get_proxy(association).destroy_all when :delete_all self.get_proxy(association).delete_all when :nullify self.get_proxy(association).nullify end end end end