class Drydock::Phase

Public Class Methods

from(hsh) click to toggle source
# File lib/drydock/phase.rb, line 14
def self.from(hsh)
  h = hsh.to_h
  extra_keys = h.keys - members

  fail ArgumentError, "unknown options: #{extra_keys.join(', ')}" unless extra_keys.empty?

  new(*h.values_at(*members))
end
new(*args) click to toggle source
Calls superclass method
# File lib/drydock/phase.rb, line 23
def initialize(*args)
  super
  @finalized = false
end

Public Instance Methods

built?() click to toggle source
# File lib/drydock/phase.rb, line 28
def built?
  !cached?
end
cached?() click to toggle source
# File lib/drydock/phase.rb, line 32
def cached?
  build_container.nil?
end
destroy!(force: false) click to toggle source
# File lib/drydock/phase.rb, line 36
def destroy!(force: false)
  return self if frozen?

  finalize!(force: force)

  if result_image
    begin
      result_image.remove(force: force)
    rescue Docker::Error::NotFoundError => e
      # Ignore, because the image could have been deleted by another phase in
      # another derived chain.
    end
  end

  freeze
end
finalize!(force: false) click to toggle source
# File lib/drydock/phase.rb, line 53
def finalize!(force: false)
  unless finalized?
    build_container.remove(force: force) if built?
    @finalized = true
  end

  self
end
finalized?() click to toggle source
# File lib/drydock/phase.rb, line 62
def finalized?
  @finalized
end