Class: Everyconfig

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

Class Method Summary collapse

Class Method Details

.deep_merge(first, second) ⇒ Object



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

def self.deep_merge(first, second)
    merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
    first.merge(second, &merger)
end

.load(folder) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/everyconfig.rb', line 5

def self.load(folder)
  folder = Pathname.new folder
  env = ENV['CONFIG_ENV'] || 'default'

  begin
    defaults = YAML.load_file(File.join(folder, 'default.yaml'))
  rescue
    defaults = Hash.new
  end
  envConfig = YAML.load_file(File.join(folder, env + '.yaml'))
  return self.deep_merge(defaults, envConfig)
end