module MongoMapper::Plugins::Persistence::ClassMethods

Public Instance Methods

collection() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 56
def collection
  assert_supported
  database.collection(collection_name, collection_options)
end
collection_name() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 51
def collection_name
  assert_supported
  @collection_name ||= self.to_s.tableize.gsub(/\//, '.')
end
collection_options() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 61
def collection_options
  {}
end
connection(mongo_connection=nil) click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 17
def connection(mongo_connection=nil)
  assert_supported
  if mongo_connection.nil? && MongoMapper.connection?
    @connection ||= MongoMapper.connection
  else
    @connection = mongo_connection
  end
  @connection
end
database() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 37
def database
  assert_supported
  if database_name.nil?
    MongoMapper.database
  else
    connection.use(database_name).database
  end
end
database_name() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 32
def database_name
  assert_supported
  @database_name ||= nil   # ||= idiom prevents uninitialized ivar warnings.
end
inherited(subclass) click to toggle source
Calls superclass method
# File lib/mongo_mapper/plugins/persistence.rb, line 8
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
set_collection_name(name) click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 46
def set_collection_name(name)
  assert_supported
  @collection_name = name
end
set_database_name(name) click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 27
def set_database_name(name)
  assert_supported
  @database_name = name
end

Private Instance Methods

assert_supported() click to toggle source
# File lib/mongo_mapper/plugins/persistence.rb, line 67
def assert_supported
  @embeddable ||= embeddable?
  if @embeddable
    raise MongoMapper::NotSupported.new('This is not supported for embeddable documents at this time.')
  end
end