Sha256: b83743e4dad6a4a257b09fb29b96b3d25ea4a5a7eb7bc4f7be5df599f682acb9
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
# encoding: UTF-8 module MongoMapper module Plugins module Persistence extend ActiveSupport::Concern module ClassMethods def inherited(subclass) unless subclass.embeddable? subclass.connection(connection) subclass.set_database_name(database_name) subclass.set_collection_name(collection_name) unless subclass.explicit_collection_defined? end super end def connection(mongo_connection=nil) assert_supported if mongo_connection.nil? && MongoMapper.connection? @connection ||= MongoMapper.connection else @connection = mongo_connection end @connection end def set_database_name(name) assert_supported @database_name = name end def database_name assert_supported @database_name ||= nil # ||= idiom prevents uninitialized ivar warnings. end def database assert_supported if database_name.nil? MongoMapper.database else connection.db(database_name) end end def set_collection_name(name) assert_supported @collection_name = name end def collection_name assert_supported @collection_name ||= self.to_s.tableize.gsub(/\//, '.') end def collection assert_supported database.collection(collection_name) end private def assert_supported @embeddable ||= embeddable? if @embeddable raise MongoMapper::NotSupported.new('This is not supported for embeddable documents at this time.') end end end def collection _root_document.class.collection end def database _root_document.class.database end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongo_mapper-0.14.0 | lib/mongo_mapper/plugins/persistence.rb |
mongo_mapper-0.14.0.rc1 | lib/mongo_mapper/plugins/persistence.rb |