Module: KumoDockerCloud::StackFile

Defined in:
lib/kumo_dockercloud/stack_file.rb

Class Method Summary collapse

Class Method Details

.create_from_template(stack_template, config, env_vars) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/kumo_dockercloud/stack_file.rb', line 5

def self.create_from_template(stack_template, config, env_vars)
  parsed = YAML.load(ERB.new(stack_template).result(config.get_binding))

  converted_env_vars = make_all_root_level_keys_strings(env_vars)

  env_vars.each do |key, _|
    key_string = key.to_s
    parsed[key_string]['environment'] ||= {}
    parsed[key_string]['environment'].merge!(converted_env_vars.fetch(key_string))
    parsed[key_string]['environment'] = escape_characters_that_need_special_handling(parsed[key_string]['environment'])
  end

  parsed
end

.escape_characters_that_need_special_handling(env_hash) ⇒ Object



24
25
26
# File 'lib/kumo_dockercloud/stack_file.rb', line 24

def self.escape_characters_that_need_special_handling(env_hash)
  env_hash.keys.reduce({}) { |acc, key| acc[key] = env_hash[key].gsub(/[$]{1}/, "$$"); acc }
end