class MarkMapper::Plugins::Associations::OneAssociation

Public Instance Methods

autosave?() click to toggle source
# File lib/mark_mapper/plugins/associations/one_association.rb, line 42
def autosave?
  options.fetch(:autosave, embeddable?)
end
embeddable?() click to toggle source
# File lib/mark_mapper/plugins/associations/one_association.rb, line 6
def embeddable?
  klass.embeddable?
end
proxy_class() click to toggle source
# File lib/mark_mapper/plugins/associations/one_association.rb, line 10
def proxy_class
  @proxy_class ||=
    if klass.embeddable?
      polymorphic? ? OneEmbeddedPolymorphicProxy : OneEmbeddedProxy
    elsif as?
      OneAsProxy
    else
      OneProxy
    end
end
setup(model) click to toggle source
Calls superclass method
# File lib/mark_mapper/plugins/associations/one_association.rb, line 21
def setup(model)
  super

  association = self
  options = self.options

  model.before_destroy do
    if !association.embeddable?
      proxy = self.get_proxy(association)

      unless proxy.nil?
        case options[:dependent]
          when :destroy then proxy.destroy
          when :delete  then proxy.delete
          else proxy.nullify
        end
      end
    end
  end
end