class MarkMapper::Plugins::Associations::ManyAssociation

Public Instance Methods

autosave?() click to toggle source
# File lib/mark_mapper/plugins/associations/many_association.rb, line 57
def autosave?
  options.fetch(:autosave, true)
end
class_name() click to toggle source
# File lib/mark_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/mark_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_array?
      InArrayProxy
    else
      ManyDocumentsProxy
    end
  end
end
setup(model) click to toggle source
# File lib/mark_mapper/plugins/associations/many_association.rb, line 28
        def setup(model)
          model.associations_module.module_eval <<-end_eval
            def #{name}
              get_proxy(associations[#{name.inspect}])
            end

            def #{name}=(value)
              get_proxy(associations[#{name.inspect}]).replace(value)
              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