class StackMaster::ParameterLoader
Constants
- COMPILE_TIME_PARAMETERS_KEY
Public Class Methods
load(parameter_files: [], parameters: {})
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 8 def self.load(parameter_files: [], parameters: {}) StackMaster.debug 'Searching for parameter files...' all_parameters = parameter_files.map { |file_name| load_parameters(file_name) } + [parameters] all_parameters.reduce({template_parameters: {}, compile_time_parameters: {}}) do |hash, parameters| template_parameters = create_template_parameters(parameters) compile_time_parameters = create_compile_time_parameters(parameters) merge_and_camelize(hash[:template_parameters], template_parameters) merge_and_camelize(hash[:compile_time_parameters], compile_time_parameters) hash end end
Private Class Methods
create_compile_time_parameters(parameters)
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 39 def self.create_compile_time_parameters(parameters) (parameters[COMPILE_TIME_PARAMETERS_KEY] || parameters[COMPILE_TIME_PARAMETERS_KEY.camelize] || {}).deep_dup end
create_template_parameters(parameters)
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 33 def self.create_template_parameters(parameters) parameters.deep_dup.tap do |parameters_clone| parameters_clone.delete(COMPILE_TIME_PARAMETERS_KEY) || parameters_clone.delete(COMPILE_TIME_PARAMETERS_KEY.camelize) end end
load_file(file_name)
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 29 def self.load_file(file_name) YAML.load(File.read(file_name)) || {} end
load_parameters(file_name)
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 23 def self.load_parameters(file_name) file_exists = File.exists?(file_name) StackMaster.debug file_exists ? " #{file_name} found" : " #{file_name} not found" file_exists ? load_file(file_name) : {} end
merge_and_camelize(hash, parameters)
click to toggle source
# File lib/stack_master/parameter_loader.rb, line 43 def self.merge_and_camelize(hash, parameters) parameters.each { |key, value| hash[key.camelize] = value } end