Module: MongoMapper
- Defined in:
- lib/mongo_mapper/support.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/sci.rb,
lib/mongo_mapper/plugins/keys.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/indexes.rb,
lib/mongo_mapper/plugins/inspect.rb,
lib/mongo_mapper/plugins/document.rb,
lib/mongo_mapper/plugins/equality.rb,
lib/mongo_mapper/plugins/keys/key.rb,
lib/mongo_mapper/plugins/querying.rb,
lib/mongo_mapper/embedded_document.rb,
lib/mongo_mapper/plugins/callbacks.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/dynamic_querying.rb,
lib/mongo_mapper/plugins/pagination/proxy.rb,
lib/mongo_mapper/plugins/associations/base.rb,
lib/mongo_mapper/plugins/embedded_document.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/dynamic_querying/dynamic_finder.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
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.6'
Class Method Summary
collapse
Class Method Details
63
64
65
66
|
# File 'lib/mongo_mapper.rb', line 63
def self.config
raise 'Set config before connecting. MongoMapper.config = {...}' unless defined?(@@config)
@@config
end
|
.config=(hash) ⇒ Object
59
60
61
|
# File 'lib/mongo_mapper.rb', line 59
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.
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/mongo_mapper.rb', line 69
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
84
85
86
87
88
89
90
|
# File 'lib/mongo_mapper.rb', line 84
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
30
31
32
|
# File 'lib/mongo_mapper.rb', line 30
def self.connection
@@connection ||= Mongo::Connection.new
end
|
.connection=(new_connection) ⇒ Object
35
36
37
|
# File 'lib/mongo_mapper.rb', line 35
def self.connection=(new_connection)
@@connection = new_connection
end
|
51
52
53
54
55
56
57
|
# File 'lib/mongo_mapper.rb', line 51
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
45
46
47
48
|
# File 'lib/mongo_mapper.rb', line 45
def self.database=(name)
@@database = nil
@@database_name = name
end
|
.handle_passenger_forking ⇒ Object
98
99
100
101
102
103
104
|
# File 'lib/mongo_mapper.rb', line 98
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
|
40
41
42
|
# File 'lib/mongo_mapper.rb', line 40
def self.logger
connection.logger
end
|
.setup(config, environment, options = {}) ⇒ Object
92
93
94
95
96
|
# File 'lib/mongo_mapper.rb', line 92
def self.setup(config, environment, options={})
handle_passenger_forking
self.config = config
connect(environment, options)
end
|