class MongoMapper::Plugins::Associations::ManyEmbeddedPolymorphicProxy

Public Instance Methods

replace(values) click to toggle source
# File lib/mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy.rb, line 6
def replace(values)
  @_values = values.map do |v|
    v.respond_to?(:attributes) ? v.attributes.merge(association.type_key_name => v.class.name) : v
  end
  reset
end

Protected Instance Methods

find_target() click to toggle source
# File lib/mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy.rb, line 15
def find_target
  (@_values || []).map do |hash|
    child = polymorphic_class(hash).load(hash, true)
    assign_references(child)
    child
  end
end
polymorphic_class(doc) click to toggle source
# File lib/mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy.rb, line 23
def polymorphic_class(doc)
  if class_name = doc[association.type_key_name]
    class_name.constantize
  else
    klass
  end
end