class Docktor::Manifest

Public Instance Methods

find_container_by_name(name) click to toggle source
# File lib/docktor/manifest.rb, line 35
def find_container_by_name(name)
  containers.find { |container| container.name == name }
end
select_container_for_execution(container_name) click to toggle source
# File lib/docktor/manifest.rb, line 15
def select_container_for_execution(container_name)
  select_containers_for_execution([container_name])
end
select_containers_for_execution(container_names) click to toggle source
# File lib/docktor/manifest.rb, line 19
def select_containers_for_execution(container_names)
  self.containers_for_execution = []

  container_names.each do |name|
    container = find_container_by_name(name)

    fail ContainerNotFound, %(There is no container "#{name}") if container.nil?

    containers_for_execution << container
    self.containers_for_execution += find_container_links(container)
  end

  containers_for_execution.uniq!
  sort_containers_for_execution!
end
sort_containers_for_execution!() click to toggle source
# File lib/docktor/manifest.rb, line 43
def sort_containers_for_execution!
  sorted_containers = []

  containers_for_execution.each do |container|
    links_indexes = container.links.map { |link| sorted_containers.index link }
    sorted_containers.insert((links_indexes.max || -1) + 1, container)
  end

  self.containers_for_execution = sorted_containers
end