Module: MongoMapper::Plugins::Persistence::ClassMethods

Defined in:
lib/mongo_mapper/plugins/persistence.rb

Instance Method Summary collapse

Instance Method Details

#collectionObject



56
57
58
59
# File 'lib/mongo_mapper/plugins/persistence.rb', line 56

def collection
  assert_supported
  database.collection(collection_name, collection_options)
end

#collection_nameObject



51
52
53
54
# File 'lib/mongo_mapper/plugins/persistence.rb', line 51

def collection_name
  assert_supported
  @collection_name ||= self.to_s.tableize.gsub(/\//, '.')
end

#collection_optionsObject



61
62
63
# File 'lib/mongo_mapper/plugins/persistence.rb', line 61

def collection_options
  {}
end

#connection(mongo_connection = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
# 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

#databaseObject



37
38
39
40
41
42
43
44
# 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_nameObject



32
33
34
35
# 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) ⇒ Object



8
9
10
11
12
13
14
15
# 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) ⇒ Object



46
47
48
49
# File 'lib/mongo_mapper/plugins/persistence.rb', line 46

def set_collection_name(name)
  assert_supported
  @collection_name = name
end

#set_database_name(name) ⇒ Object



27
28
29
30
# File 'lib/mongo_mapper/plugins/persistence.rb', line 27

def set_database_name(name)
  assert_supported
  @database_name = name
end