Sha256: d6241cf479597f35d899652f8d1512f16a566cd3eab6536b6b206c48b8aab214

Contents?: true

Size: 1.13 KB

Versions: 14

Compression:

Stored size: 1.13 KB

Contents

class DockerHelpers
  def initialize(compose_path)
    @compose_path = compose_path
    @compose = YAML.safe_load(File.read(compose_path))
  end

  def add_link(target_service, linked_service)
    service = @compose['services'][target_service]
    unless service['links'].is_a? Array
      service['links'] = []
    end
    service['links'].push(linked_service)
    save
  end

  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

  def add_service(name, definition)
    add_leaf('services', name, definition)
  end

  def add_volume(name, definition = '')
    add_leaf('volumes', name, definition)
  end

  private

  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

  def save
    File.open(@compose_path, 'w') { |f| f.write @compose.to_yaml }
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
potassium-7.2.0 lib/potassium/helpers/docker-helpers.rb
potassium-7.1.0 lib/potassium/helpers/docker-helpers.rb
potassium-7.0.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.7.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.6.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.5.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.4.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.3.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.2.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.1.0 lib/potassium/helpers/docker-helpers.rb
potassium-6.0.0 lib/potassium/helpers/docker-helpers.rb
potassium-5.2.3 lib/potassium/helpers/docker-helpers.rb
potassium-5.2.2 lib/potassium/helpers/docker-helpers.rb
potassium-5.2.1 lib/potassium/helpers/docker-helpers.rb