Method: Sfn::CommandModule::Template::InstanceMethods#merge_compile_time_parameters

Defined in:
lib/sfn/command_module/template.rb

#merge_compile_time_parametersObject

Merge parameters provided directly via configuration into core parameter set



260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# File 'lib/sfn/command_module/template.rb', line 260

def merge_compile_time_parameters
  compile_state = config.fetch(:compile_parameters, Smash.new)
  ui.debug "Initial compile parameters - #{compile_state}"
  compile_state.keys.each do |cs_key|
    unless cs_key.to_s.start_with?("#{arguments.first}__")
      named_cs_key = [arguments.first, cs_key].compact.join("__")
      non_named = compile_state.delete(cs_key)
      if non_named && !compile_state.key?(named_cs_key)
        ui.debug "Setting non-named compile parameter `#{cs_key}` into `#{named_cs_key}`"
        compile_state[named_cs_key] = non_named
      elsif non_named && compile_state.key?(named_cs_key)
        ui.debug "Merging none-named `#{cs_key}` with named `#{named_cs_key}`"
        compile_state[named_cs_key].merge!(non_named)
      else
        ui.debug "Discarding non-named compile parameter due to set named - `#{cs_key}` </> `#{named_cs_key}`"
      end
    end
  end
  ui.debug "Merged compile parameters - #{compile_state}"
  compile_state
end