Module: Slavery

Extended by:
ActiveSupport::Concern
Defined in:
lib/slavery.rb,
lib/slavery/railtie.rb,
lib/slavery/version.rb

Defined Under Namespace

Modules: ClassMethods Classes: Error, Railtie

Constant Summary collapse

VERSION =
'1.4.3'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.disabledObject

Returns the value of attribute disabled.



19
20
21
# File 'lib/slavery.rb', line 19

def disabled
  @disabled
end

.envObject



46
47
48
# File 'lib/slavery.rb', line 46

def env
  @env ||= defined?(Rails) ? Rails.env.to_s : 'development'
end

.spec_keyObject



22
23
24
25
26
27
28
# File 'lib/slavery.rb', line 22

def spec_key
  case @spec_key
  when String   then @spec_key
  when Proc     then @spec_key = @spec_key.call
  when NilClass then @spec_key = "#{Slavery.env}_slave"
  end
end

Class Method Details

.on_master(&block) ⇒ Object



34
35
36
# File 'lib/slavery.rb', line 34

def on_master(&block)
  run false, &block
end

.on_slave(&block) ⇒ Object



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

def on_slave(&block)
  run true, &block
end

.run(new_value) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/slavery.rb', line 38

def run(new_value)
  old_value = Thread.current[:on_slave] # Save for recursive nested calls
  Thread.current[:on_slave] = new_value
  yield
ensure
  Thread.current[:on_slave] = old_value
end