class PropertyGenerator::Globals
Attributes
globals[RW]
Public Class Methods
new(project_path, config)
click to toggle source
# File lib/generator/globals.rb, line 6 def initialize(project_path, config) @project_path = project_path @environments = config.environments @environment_configs = config.environment_configs @accounts = config.accounts end
Public Instance Methods
condense_globals()
click to toggle source
merge environment globals with account globals.
# File lib/generator/globals.rb, line 57 def condense_globals condensed = {} # get account and the environmental hash's for said account environment_globals = get_environment_globals account_globals = get_account_globals main_global = get_main_global # nothing to do here if everything is empty return condensed if environment_globals.empty? && account_globals.empty? && main_global.empty? environment_globals.each do |account, env_global| # get the env and the values env_global.each do |env, hash| account_globals[account] ||= {} # set the environment globals to be the account global merged with the env globals env_global[env] = account_globals[account].deep_merge(hash) unless hash.empty? condensed[env] = env_global[env] end end unless main_global.empty? # All environments need the main global definitions @environments.each do |env| # If a key/value pair for a environment has not been defined set one so we can merge condensed[env] ||= {} # We need to merge into the globals so any env configs overwrite main global configs. # Dup so we dont modify the original object main_global_dup = main_global.dup condensed[env] = main_global_dup.deep_merge(condensed[env]) end end condensed end
get_account_globals()
click to toggle source
# File lib/generator/globals.rb, line 25 def get_account_globals data = {} @accounts.each do |account| next unless Dir.exist?("#{@project_path}/globals/accounts/#{account}") account_default_file = "#{@project_path}/globals/accounts/#{account}/#{account}.yml" data[account] = YAML.load_file(account_default_file) if File.exist?(account_default_file) end data end
get_environment_globals()
click to toggle source
# File lib/generator/globals.rb, line 36 def get_environment_globals data = {} @accounts.each do |account| next unless Dir.exist?("#{@project_path}/globals/accounts/#{account}/environments") data[account] = {} @environments.each do |env| next unless File.exist?("#{@project_path}/globals/accounts/#{account}/environments/#{env}.yml") data[account][env] = YAML.load_file("#{@project_path}/globals/accounts/#{account}/environments/#{env}.yml") unless data[account][env]['encrypted'].nil? encrypted = data[account][env]['encrypted'].dup not_encrypted = data[account][env].reject { |k, _| k == 'encrypted' } data[account][env] = not_encrypted.deep_merge(encrypted) end end end data end
get_main_global()
click to toggle source
# File lib/generator/globals.rb, line 17 def get_main_global top_level = {} if File.exist?("#{@project_path}/globals/globals.yml") top_level = YAML.load_file("#{@project_path}/globals/globals.yml") end top_level end