Module: Multidb

Defined in:
lib/multidb.rb,
lib/multidb/version.rb,
lib/multidb/balancer.rb,
lib/multidb/configuration.rb,
lib/multidb/model_extensions.rb

Defined Under Namespace

Modules: ModelExtensions Classes: Balancer, Candidate, Configuration

Constant Summary collapse

VERSION =
'0.1.9'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.balancerObject (readonly)

Returns the value of attribute balancer.



21
22
23
# File 'lib/multidb.rb', line 21

def balancer
  @balancer
end

.configurationObject (readonly)

Returns the value of attribute configuration.



16
17
18
# File 'lib/multidb/configuration.rb', line 16

def configuration
  @configuration
end

Class Method Details

.configure!Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/multidb/configuration.rb', line 5

def configure!
  connection_pool = ActiveRecord::Base.connection_pool
  if connection_pool
    connection = connection_pool.connection
    activerecord_config = connection.instance_variable_get(:@config).dup.with_indifferent_access
    default_adapter, configuration_hash = activerecord_config, activerecord_config.delete(:multidb)
    configuration_hash ||= {}
    @configuration = Configuration.new(default_adapter, configuration_hash)
  end
end

.install!Object



11
12
13
14
15
16
17
18
19
# File 'lib/multidb.rb', line 11

def install!
  configure!
  if @configuration and not @configuration.raw_configuration[:databases].blank?
    ActiveRecord::Base.class_eval do
      include Multidb::ModelExtensions
    end
  end
  @balancer = Balancer.new(@configuration)
end