module Perpetuity
Constants
- DuplicateKeyError
- VERSION
Public Class Methods
[](klass)
click to toggle source
# File lib/perpetuity.rb, line 23 def self.[] klass mapper_registry[klass] end
configuration()
click to toggle source
# File lib/perpetuity.rb, line 13 def self.configuration @configuration ||= Configuration.new end
configure(&block)
click to toggle source
# File lib/perpetuity.rb, line 7 def self.configure &block register_standard_adapters detect_rails configuration.instance_exec(&block) end
data_source(*args)
click to toggle source
# File lib/perpetuity.rb, line 31 def self.data_source *args configure { data_source *args } end
generate_mapper_for(klass, &block)
click to toggle source
# 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
logger()
click to toggle source
# File lib/perpetuity.rb, line 35 def self.logger configuration.logger end
mapper_registry()
click to toggle source
# File lib/perpetuity.rb, line 27 def self.mapper_registry @mapper_registry ||= MapperRegistry.new end
register_adapter(adapters)
click to toggle source
# File lib/perpetuity.rb, line 39 def self.register_adapter adapters config_adapters = Perpetuity::Configuration.adapters adapters.each do |adapter_name, adapter_class| if config_adapters.has_key?(adapter_name) && config_adapters[adapter_name] != adapter_class raise "That adapter name has already been registered for #{config_adapters[adapter_name]}" else config_adapters[adapter_name] = adapter_class end end end
Private Class Methods
detect_rails()
click to toggle source
Necessary to be able to check whether Rails is loaded and initialized
# File lib/perpetuity.rb, line 53 def self.detect_rails require File.expand_path('../perpetuity/rails.rb', __FILE__) if defined? Rails end
register_standard_adapters()
click to toggle source
Necessary until these adapters are updated to register themselves.
# File lib/perpetuity.rb, line 58 def self.register_standard_adapters Perpetuity.register_adapter :mongodb => Perpetuity::MongoDB if defined?(Perpetuity::MongoDB) Perpetuity.register_adapter :postgres => Perpetuity::Postgres if defined?(Perpetuity::Postgres) Perpetuity.register_adapter :dynamodb => Perpetuity::DynamoDB if defined?(Perpetuity::DynamoDB) end