Class: StackMaster::ParameterLoader
- Inherits:
-
Object
- Object
- StackMaster::ParameterLoader
- Defined in:
- lib/stack_master/parameter_loader.rb
Constant Summary collapse
- COMPILE_TIME_PARAMETERS_KEY =
'compile_time_parameters'
Class Method Summary collapse
- .create_compile_time_parameters(parameters) ⇒ Object
- .create_template_parameters(parameters) ⇒ Object
- .load(parameter_files) ⇒ Object
- .load_file(file_name) ⇒ Object
- .load_parameters(file_name) ⇒ Object
- .merge_and_camelize(hash, parameters) ⇒ Object
Class Method Details
.create_compile_time_parameters(parameters) ⇒ Object
40 41 42 |
# File 'lib/stack_master/parameter_loader.rb', line 40 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) ⇒ Object
34 35 36 37 38 |
# File 'lib/stack_master/parameter_loader.rb', line 34 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(parameter_files) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/stack_master/parameter_loader.rb', line 8 def self.load(parameter_files) StackMaster.debug 'Searching for parameter files...' parameter_files.reduce({template_parameters: {}, compile_time_parameters: {}}) do |hash, file_name| parameters = load_parameters(file_name) 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 |
.load_file(file_name) ⇒ Object
30 31 32 |
# File 'lib/stack_master/parameter_loader.rb', line 30 def self.load_file(file_name) YAML.load(File.read(file_name)) || {} end |
.load_parameters(file_name) ⇒ Object
24 25 26 27 28 |
# File 'lib/stack_master/parameter_loader.rb', line 24 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) ⇒ Object
44 45 46 |
# File 'lib/stack_master/parameter_loader.rb', line 44 def self.merge_and_camelize(hash, parameters) parameters.each { |key, value| hash[key.camelize] = value } end |