lib/rubber/environment.rb in axtro-rubber-1.2.3 vs lib/rubber/environment.rb in axtro-rubber-1.5.7
- old
+ new
@@ -12,19 +12,27 @@
attr_reader :config_files
attr_reader :config_secret
def initialize(config_root)
@config_root = config_root
- @config_files = ["#{@config_root}/rubber.yml"] + Dir["#{@config_root}/rubber-*.yml"].sort
+ @config_files = ["#{@config_root}/rubber.yml"]
+ @config_files += Dir["#{@config_root}/rubber-*.yml"].sort
+
+ # add a config file for current env only so that you can override
+ #things for specific envs
+ @config_files -= Dir["#{@config_root}/rubber-*-env.yml"]
+ env_yml = "#{@config_root}/rubber-#{Rubber.env}-env.yml"
+ @config_files << env_yml if File.exist?(env_yml)
+
@items = {}
@config_files.each { |file| read_config(file) }
@config_secret = bind().rubber_secret
read_config(@config_secret) if @config_secret
end
def read_config(file)
- LOGGER.debug{"Reading rubber configuration from #{file}"}
+ Rubber.logger.debug{"Reading rubber configuration from #{file}"}
if File.exist?(file)
@items = Environment.combine(@items, YAML.load_file(file) || {})
end
end
@@ -143,17 +151,17 @@
# Forces role/host overrides into config
def bind_config(global)
global = global.clone()
role_overrides = global.delete("roles") || {}
host_overrides = global.delete("hosts") || {}
- roles.to_a.each do |role|
- role_overrides[role].each do |k, v|
+ Array(roles).each do |role|
+ Array(role_overrides[role]).each do |k, v|
global[k] = Environment.combine(global[k], v)
- end if role_overrides[role]
+ end
end
- host_overrides[host].each do |k, v|
+ Array(host_overrides[host]).each do |k, v|
global[k] = Environment.combine(global[k], v)
- end if host_overrides[host]
+ end
return global
end
def method_missing(method_id)
key = method_id.id2name
\ No newline at end of file