Sha256: 3d35dfa7f528e875788bdec9adb17238be84ff23a877f74456f1f93b619a6cd8

Contents?: true

Size: 716 Bytes

Versions: 19

Compression:

Stored size: 716 Bytes

Contents

module MongoMapper
  module Associations
    class ManyEmbeddedPolymorphicProxy < Collection
      def replace(values)
        @_values = values.map do |v|
          if v.kind_of?(EmbeddedDocument)
            v.attributes.merge(reflection.type_key_name => v.class.name)
          else
            v
          end
        end
        reset
      end

      protected
        def find_target
          (@_values || []).map do |hash|
            polymorphic_class(hash).new(hash)
          end
        end
        
        def polymorphic_class(doc)
          if class_name = doc[reflection.type_key_name]
            class_name.constantize
          else
            klass
          end
        end
    end
  end
end

Version data entries

19 entries across 19 versions & 4 rubygems

Version Path
mrkurt-mongo_mapper-0.6.11 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.6 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.5 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.4 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
tpitale-mongo_mapper-0.6.10 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.10 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-0.6.10 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.9 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-0.6.9 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.8 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
tpitale-mongo_mapper-0.6.9 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.30 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.29 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.23 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.22 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.16 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-0.6.8 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.14 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb
mongo_mapper-0.6.7 lib/mongo_mapper/associations/many_embedded_polymorphic_proxy.rb