class DockerHelpers

Public Class Methods

new(compose_path) click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 2
def initialize(compose_path)
  @compose_path = compose_path
  @compose = YAML.safe_load(File.read(compose_path))
end

Public Instance Methods

add_env(target_service, variable_key, variable_value) click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 16
def add_env(target_service, variable_key, variable_value)
  service = @compose['services'][target_service]
  unless service['environment'].is_a? Hash
    service['environment'] = {}
  end
  service['environment'][variable_key] = variable_value
  save
end
add_service(name, definition) click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 25
def add_service(name, definition)
  add_leaf('services', name, definition)
end
add_volume(name, definition = '') click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 29
def add_volume(name, definition = '')
  add_leaf('volumes', name, definition)
end

Private Instance Methods

add_leaf(root_name, leaf_name, definition) click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 35
def add_leaf(root_name, leaf_name, definition)
  leaf = {}
  leaf[leaf_name] = YAML.safe_load(definition)
  @compose[root_name] = {} unless @compose[root_name].is_a? Hash
  @compose[root_name].merge!(leaf)
  save
end
save() click to toggle source
# File lib/potassium/helpers/docker-helpers.rb, line 43
def save
  File.open(@compose_path, 'w') { |f| f.write @compose.to_yaml }
end