Class: Persey::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/persey/loader.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configs) ⇒ Loader

Returns a new instance of Loader.



12
13
14
# File 'lib/persey/loader.rb', line 12

def initialize(configs)
  @configs = configs
end

Instance Attribute Details

#configsObject

Returns the value of attribute configs.



3
4
5
# File 'lib/persey/loader.rb', line 3

def configs
  @configs
end

Class Method Details

.load(configs, env) ⇒ Object



6
7
8
9
# File 'lib/persey/loader.rb', line 6

def load(configs, env)
  l = new(configs)
  l.load(env)
end

Instance Method Details

#load(env) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/persey/loader.rb', line 16

def load(env)
  @defaults = {}

  configs.each do |pdc|
    klass = pdc[:class]
    raw_config = klass.load(pdc[:file], env)
    env_config = raw_config[env].nil? ? raw_config : raw_config[env]

    n = pdc[:namespace]
    if n.nil?
      @defaults.merge!(env_config)
    else
      @defaults[n].is_a?(Hash) ? @defaults[n].merge!(env_config) : @defaults[n] = env_config
    end
  end

  @defaults
end