Module: MongoMapper
- Defined in:
- lib/mongo_mapper/plugins/callbacks.rb,
lib/mongo_mapper.rb,
lib/mongo_mapper/query.rb,
lib/mongo_mapper/plugins.rb,
lib/mongo_mapper/version.rb,
lib/mongo_mapper/document.rb,
lib/mongo_mapper/plugins/keys.rb,
lib/mongo_mapper/support/find.rb,
lib/mongo_mapper/plugins/clone.rb,
lib/mongo_mapper/plugins/dirty.rb,
lib/mongo_mapper/plugins/rails.rb,
lib/mongo_mapper/plugins/logger.rb,
lib/mongo_mapper/plugins/inspect.rb,
lib/mongo_mapper/plugins/equality.rb,
lib/mongo_mapper/plugins/keys/key.rb,
lib/mongo_mapper/embedded_document.rb,
lib/mongo_mapper/plugins/modifiers.rb,
lib/mongo_mapper/plugins/protected.rb,
lib/mongo_mapper/plugins/pagination.rb,
lib/mongo_mapper/plugins/timestamps.rb,
lib/mongo_mapper/plugins/userstamps.rb,
lib/mongo_mapper/plugins/descendants.rb,
lib/mongo_mapper/plugins/persistence.rb,
lib/mongo_mapper/plugins/validations.rb,
lib/mongo_mapper/plugins/associations.rb,
lib/mongo_mapper/plugins/identity_map.rb,
lib/mongo_mapper/plugins/query_logger.rb,
lib/mongo_mapper/plugins/serialization.rb,
lib/mongo_mapper/plugins/pagination/proxy.rb,
lib/mongo_mapper/plugins/associations/base.rb,
lib/mongo_mapper/plugins/associations/proxy.rb,
lib/mongo_mapper/support/descendant_appends.rb,
lib/mongo_mapper/plugins/associations/one_proxy.rb,
lib/mongo_mapper/plugins/associations/collection.rb,
lib/mongo_mapper/plugins/associations/in_array_proxy.rb,
lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb,
lib/mongo_mapper/plugins/associations/one_embedded_proxy.rb,
lib/mongo_mapper/plugins/associations/embedded_collection.rb,
lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb,
lib/mongo_mapper/plugins/associations/many_documents_proxy.rb,
lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb,
lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb,
lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb,
lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb,
lib/mongo_mapper/support.rb
Overview
Almost all of this callback stuff is pulled directly from ActiveSupport in the interest of support rails 2 and 3 at the same time and is the same copyright as rails.
Defined Under Namespace
Modules: Document, EmbeddedDocument, Plugins, Support
Classes: DocumentNotFound, DocumentNotValid, InvalidScheme, KeyNotFound, MongoMapperError, Query
Constant Summary
collapse
- Version =
'0.7.5'
Class Method Summary
collapse
Class Method Details
65
66
67
68
|
# File 'lib/mongo_mapper.rb', line 65
def self.config
raise 'Set config before connecting. MongoMapper.config = {...}' unless defined?(@@config)
@@config
end
|
.config=(hash) ⇒ Object
61
62
63
|
# File 'lib/mongo_mapper.rb', line 61
def self.config=(hash)
@@config = hash
end
|
.config_for_environment(environment) ⇒ Object
This method is part of a private API.
You should avoid using this method if possible, as it may be removed or be changed in the future.
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/mongo_mapper.rb', line 71
def self.config_for_environment(environment)
env = config[environment]
return env if env['uri'].blank?
uri = URI.parse(env['uri'])
raise InvalidScheme.new('must be mongodb') unless uri.scheme == 'mongodb'
{
'host' => uri.host,
'port' => uri.port,
'database' => uri.path.gsub(/^\//, ''),
'username' => uri.user,
'password' => uri.password,
}
end
|
.connect(environment, options = {}) ⇒ Object
86
87
88
89
90
91
92
|
# File 'lib/mongo_mapper.rb', line 86
def self.connect(environment, options={})
raise 'Set config before connecting. MongoMapper.config = {...}' if config.blank?
env = config_for_environment(environment)
MongoMapper.connection = Mongo::Connection.new(env['host'], env['port'], options)
MongoMapper.database = env['database']
MongoMapper.database.authenticate(env['username'], env['password']) if env['username'] && env['password']
end
|
.connection ⇒ Object
32
33
34
|
# File 'lib/mongo_mapper.rb', line 32
def self.connection
@@connection ||= Mongo::Connection.new
end
|
.connection=(new_connection) ⇒ Object
37
38
39
|
# File 'lib/mongo_mapper.rb', line 37
def self.connection=(new_connection)
@@connection = new_connection
end
|
53
54
55
56
57
58
59
|
# File 'lib/mongo_mapper.rb', line 53
def self.database
if @@database_name.blank?
raise 'You forgot to set the default database name: MongoMapper.database = "foobar"'
end
@@database ||= MongoMapper.connection.db(@@database_name)
end
|
.database=(name) ⇒ Object
47
48
49
50
|
# File 'lib/mongo_mapper.rb', line 47
def self.database=(name)
@@database = nil
@@database_name = name
end
|
.handle_passenger_forking ⇒ Object
101
102
103
104
105
106
107
|
# File 'lib/mongo_mapper.rb', line 101
def self.handle_passenger_forking
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
connection.connect_to_master if forked
end
end
end
|
42
43
44
|
# File 'lib/mongo_mapper.rb', line 42
def self.logger
connection.logger
end
|
.setup(config, environment, options = {}) ⇒ Object
94
95
96
97
98
99
|
# File 'lib/mongo_mapper.rb', line 94
def self.setup(config, environment, options={})
using_passenger = options.delete(:passenger)
handle_passenger_forking if using_passenger
self.config = config
connect(environment, options)
end
|