Class: Moonshot::ParameterStrategy::MergeStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/moonshot/merge_strategy.rb

Overview

Merge strategy: prefer parameter values defined in the parameter file, otherwise use the previously set value on the existing stack.

Instance Method Summary collapse

Instance Method Details

#parameters(params, stack_params, template) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/moonshot/merge_strategy.rb', line 9

def parameters(params, stack_params, template)
  stack_keys = stack_params.keys.select do |k|
    template.parameters.any? { |p| p.name == k }
  end

  (params.keys + stack_keys).uniq.map do |key|
    if params[key]
      {
        parameter_key: key,
        parameter_value: params[key],
        use_previous_value: false
      }
    else
      {
        parameter_key: key,
        use_previous_value: true
      }
    end
  end
end