Module: Slavery

Defined in:
lib/slavery.rb,
lib/slavery/base.rb,
lib/slavery/error.rb,
lib/slavery/version.rb,
lib/slavery/slave_connection_holder.rb

Defined Under Namespace

Classes: Base, Error, SlaveConnectionHolder

Constant Summary collapse

VERSION =
'2.0.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.disabledObject

Returns the value of attribute disabled.



11
12
13
# File 'lib/slavery.rb', line 11

def disabled
  @disabled
end

.spec_keyObject



14
15
16
17
18
19
# File 'lib/slavery.rb', line 14

def spec_key
  case @spec_key
  when String   then @spec_key
  when NilClass then @spec_key = "#{ActiveRecord::ConnectionHandling::RAILS_ENV.call}_slave"
  end
end

Class Method Details

.base_transaction_depthObject



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/slavery.rb', line 36

def base_transaction_depth
  @base_transaction_depth ||= begin
    testcase = ActiveSupport::TestCase
    if defined?(testcase) &&
        testcase.respond_to?(:use_transactional_fixtures) &&
        testcase.try(:use_transactional_fixtures)
      1
    else
      0
    end
  end
end

.on_master(&block) ⇒ Object



25
26
27
# File 'lib/slavery.rb', line 25

def on_master(&block)
  Base.new(:master).run &block
end

.on_slave(&block) ⇒ Object



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

def on_slave(&block)
  Base.new(:slave).run &block
end

.slave_connection_holderObject



29
30
31
32
33
34
# File 'lib/slavery.rb', line 29

def slave_connection_holder
  @slave_connection_holder ||= begin
    SlaveConnectionHolder.activate
    SlaveConnectionHolder
  end
end