Sha256: 114743de212680720f2aff3c8d3119f3aa677fec680f94faeaaeef835da1a205
Contents?: true
Size: 766 Bytes
Versions: 1
Compression:
Stored size: 766 Bytes
Contents
module MongoMapper module Associations class PolymorphicHasManyEmbeddedProxy < Proxy def replace(v) @_values = v.map do |e| ref_type = "#{@association.name}_type" if e.kind_of?(EmbeddedDocument) e.class.send(:key, ref_type, String) {ref_type => e.class.name}.merge(e.attributes) else e end end @target = nil reload_target end protected def find_target (@_values || []).map do |e| ref_type = "#{@association.name}_type" class_name = e[ref_type] klass = class_name ? Kernel.const_get(class_name) : @association.klass klass.new(e) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fcoury-mongomapper-0.3.0 | lib/mongomapper/associations/polymorphic_has_many_embedded_proxy.rb |