class StackMaster::ParameterValidator
Public Class Methods
new(stack:, stack_definition:)
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 5 def initialize(stack:, stack_definition:) @stack = stack @stack_definition = stack_definition end
Public Instance Methods
error_message()
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 10 def error_message return nil unless missing_parameters? message = "Empty/blank parameters detected. Please provide values for these parameters:\n" missing_parameters.each do |parameter_name| message << " - #{parameter_name}\n" end if @stack_definition.parameter_files.empty? message << message_for_parameter_globs else message << message_for_parameter_files end message end
missing_parameters?()
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 24 def missing_parameters? missing_parameters.any? end
Private Instance Methods
message_for_parameter_files()
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 30 def message_for_parameter_files "Parameters are configured to be read from the following files:\n".tap do |message| @stack_definition.parameter_files.each do |parameter_file| message << " - #{parameter_file}\n" end end end
message_for_parameter_globs()
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 38 def message_for_parameter_globs "Parameters will be read from files matching the following globs:\n".tap do |message| base_dir = Pathname.new(@stack_definition.base_dir) @stack_definition.parameter_file_globs.each do |glob| parameter_file = Pathname.new(glob).relative_path_from(base_dir) message << " - #{parameter_file}\n" end end end
missing_parameters()
click to toggle source
# File lib/stack_master/parameter_validator.rb, line 48 def missing_parameters @missing_parameters ||= @stack.parameters_with_defaults.select { |_key, value| value.nil? }.keys end