lib/mongo_mapper/associations/base.rb in mrkurt-mongo_mapper-0.6.8 vs lib/mongo_mapper/associations/base.rb in mrkurt-mongo_mapper-0.6.9

- old
+ new

@@ -2,11 +2,11 @@ module Associations class Base attr_reader :type, :name, :options, :finder_options # Options that should not be considered MongoDB query options/criteria - AssociationOptions = [:as, :class, :class_name, :dependent, :extend, :foreign_key, :polymorphic] + AssociationOptions = [:as, :class, :class_name, :dependent, :extend, :foreign_key, :in, :polymorphic] def initialize(type, name, options={}, &extension) @type, @name, @options, @finder_options = type, name, {}, {} options.symbolize_keys! @@ -54,11 +54,19 @@ end def as? !!@options[:as] end + + def in_array? + !!@options[:in] + end + def embeddable? + many? && klass.embeddable? + end + def type_key_name @type_key_name ||= many? ? '_type' : "#{as}_type" end def as @@ -71,34 +79,32 @@ def ivar @ivar ||= "@_#{name}" end - def embeddable? - many? && klass.embeddable? - end - def proxy_class @proxy_class ||= begin if many? if self.klass.embeddable? polymorphic? ? ManyEmbeddedPolymorphicProxy : ManyEmbeddedProxy else if polymorphic? ManyPolymorphicProxy elsif as? ManyDocumentsAsProxy + elsif in_array? + InArrayProxy else ManyDocumentsProxy end end elsif one? OneProxy else polymorphic? ? BelongsToPolymorphicProxy : BelongsToProxy end - end # end begin - end # end proxy_class + end + end private # @param [Array<Module, Proc>] extensions a collection of Modules or # Procs that extend the behaviour of this association.