Class: Moltrio::Config::ChainBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/moltrio/config/chain_builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ChainBuilder

Returns a new instance of ChainBuilder.



14
15
16
17
# File 'lib/moltrio/config/chain_builder.rb', line 14

def initialize(config)
  @config = config
  @links = Hamster.vector
end

Class Method Details

.run(config, &block) ⇒ Object



8
9
10
11
12
# File 'lib/moltrio/config/chain_builder.rb', line 8

def self.run(config, &block)
  builder = new(config)
  builder.instance_exec(&block)
  builder.chain
end

Instance Method Details

#chainObject



49
50
51
# File 'lib/moltrio/config/chain_builder.rb', line 49

def chain
  AdapterChain.new(@links)
end

#database_yml(path) ⇒ Object



39
40
41
42
# File 'lib/moltrio/config/chain_builder.rb', line 39

def database_yml(path)
  link = DatabaseYmlAdapter.new(path)
  @links = @links << link
end

#env_variables(prefix) ⇒ Object



44
45
46
47
# File 'lib/moltrio/config/chain_builder.rb', line 44

def env_variables(prefix)
  link = EnvVariablesAdapter.new(prefix)
  @links = @links << link
end

#multitenant_directory(*args) ⇒ Object



34
35
36
37
# File 'lib/moltrio/config/chain_builder.rb', line 34

def multitenant_directory(*args)
  link = MultitenantDirectoryAdapter.new(config, *args)
  @links = @links << link
end

#multitenant_redis(*args) ⇒ Object



19
20
21
22
# File 'lib/moltrio/config/chain_builder.rb', line 19

def multitenant_redis(*args)
  link = MultitenantRedisAdapter.new(config, *args)
  @links = @links << link
end

#single_file(*args) ⇒ Object



29
30
31
32
# File 'lib/moltrio/config/chain_builder.rb', line 29

def single_file(*args)
  link = SingleFileAdapter.new(config, *args)
  @links = @links << link
end

#single_redis(*args) ⇒ Object



24
25
26
27
# File 'lib/moltrio/config/chain_builder.rb', line 24

def single_redis(*args)
  link = SingleRedisAdapter.new(config, *args)
  @links = @links << link
end