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