Module: Perpetuity
- Defined in:
- lib/perpetuity.rb,
lib/perpetuity/config.rb,
lib/perpetuity/mapper.rb,
lib/perpetuity/mongodb.rb,
lib/perpetuity/version.rb,
lib/perpetuity/attribute.rb,
lib/perpetuity/reference.rb,
lib/perpetuity/retrieval.rb,
lib/perpetuity/rails_model.rb,
lib/perpetuity/dereferencer.rb,
lib/perpetuity/identity_map.rb,
lib/perpetuity/attribute_set.rb,
lib/perpetuity/mongodb/index.rb,
lib/perpetuity/mongodb/query.rb,
lib/perpetuity/data_injectable.rb,
lib/perpetuity/mapper_registry.rb,
lib/perpetuity/mongodb/nil_query.rb,
lib/perpetuity/mongodb/serializer.rb,
lib/perpetuity/validations/length.rb,
lib/perpetuity/mongodb/query_union.rb,
lib/perpetuity/validations/presence.rb,
lib/perpetuity/mongodb/query_attribute.rb,
lib/perpetuity/mongodb/query_expression.rb,
lib/perpetuity/mongodb/query_intersection.rb,
lib/perpetuity/validations/validation_set.rb,
lib/perpetuity/exceptions/duplicate_key_error.rb
Defined Under Namespace
Modules: DataInjectable, RailsModel, Validations
Classes: Attribute, AttributeSet, Configuration, Dereferencer, IdentityMap, Mapper, MapperRegistry, MongoDB, NilQuery, Reference, Retrieval, ValidationSet
Constant Summary
collapse
- VERSION =
"0.7.3"
- DuplicateKeyError =
Class.new(StandardError)
Class Method Summary
collapse
Class Method Details
.[](klass) ⇒ Object
23
24
25
|
# File 'lib/perpetuity.rb', line 23
def self.[] klass
mapper_registry[klass]
end
|
.configuration ⇒ Object
13
14
15
|
# File 'lib/perpetuity.rb', line 13
def self.configuration
@configuration ||= Configuration.new
end
|
8
9
10
11
|
# File 'lib/perpetuity.rb', line 8
def self.configure &block
detect_rails
configuration.instance_exec(&block)
end
|
.data_source(adapter, db_name, options = {}) ⇒ Object
31
32
33
34
35
|
# File 'lib/perpetuity.rb', line 31
def self.data_source adapter, db_name, options={}
adapters = { mongodb: MongoDB }
configure { data_source adapters[adapter].new(options.merge(db: db_name)) }
end
|
.detect_rails ⇒ Object
Necessary to be able to check whether Rails is loaded and initialized
38
39
40
|
# File 'lib/perpetuity.rb', line 38
def self.detect_rails
require File.expand_path('../perpetuity/rails.rb', __FILE__) if defined? Rails
end
|
.generate_mapper_for(klass, &block) ⇒ Object
17
18
19
20
21
|
# File 'lib/perpetuity.rb', line 17
def self.generate_mapper_for klass, &block
mapper = Class.new(Mapper)
mapper.map klass, mapper_registry
mapper.class_eval(&block) if block_given?
end
|
.mapper_registry ⇒ Object
27
28
29
|
# File 'lib/perpetuity.rb', line 27
def self.mapper_registry
@mapper_registry ||= MapperRegistry.new
end
|