Sha256: ee119ae333f35c44989919bd2cc2ef41eb4156862d6e16bea4bcce0ab24fcd10
Contents?: true
Size: 972 Bytes
Versions: 3
Compression:
Stored size: 972 Bytes
Contents
# encoding: UTF-8 module MongoMapper module Plugins module Sci extend ActiveSupport::Concern included do extend ActiveSupport::DescendantsTracker end module ClassMethods def inherited(subclass) key :_type, String unless key?(:_type) subclass.instance_variable_set("@single_collection_inherited", true) subclass.set_collection_name(collection_name) unless subclass.embeddable? super end def single_collection_inherited? @single_collection_inherited == true end def query(options={}) super.tap do |query| query[:_type] = {'$in' => [name] + descendants.map(&:name)} if single_collection_inherited? end end end module InstanceMethods def initialize(*args) super write_key :_type, self.class.name if self.class.key?(:_type) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mongo_mapper-0.10.1 | lib/mongo_mapper/plugins/sci.rb |
mongo_mapper-0.10.0 | lib/mongo_mapper/plugins/sci.rb |
mongo_mapper-0.9.2 | lib/mongo_mapper/plugins/sci.rb |