Class: Holodekk::Docker::Dockerfile::InstructionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/holodekk/docker/dockerfile/instruction_builder.rb,
lib/holodekk/docker/dockerfile/instruction_builder/flag.rb,
lib/holodekk/docker/dockerfile/instruction_builder/option.rb,
lib/holodekk/docker/dockerfile/instruction_builder/key_pair.rb,
lib/holodekk/docker/dockerfile/instruction_builder/raw_value.rb,
lib/holodekk/docker/dockerfile/instruction_builder/value_list.rb,
lib/holodekk/docker/dockerfile/instruction_builder/value_array.rb,
lib/holodekk/docker/dockerfile/instruction_builder/quoted_string.rb

Defined Under Namespace

Classes: Flag, KeyPair, Option, QuotedString, RawValue, ValueArray, ValueList

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instruction = nil) ⇒ InstructionBuilder

Returns a new instance of InstructionBuilder.



17
18
19
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 17

def initialize(instruction = nil)
  @tag = instruction.present? ? instruction.class.tag : 'UNKNOWN'
end

Instance Attribute Details

#tagObject

Returns the value of attribute tag.



15
16
17
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 15

def tag
  @tag
end

Instance Method Details

#elementsObject



49
50
51
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 49

def elements
  @elements ||= []
end

#flag(name, enabled, **kwargs) ⇒ Object



21
22
23
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 21

def flag(name, enabled, **kwargs)
  elements << Flag.new(name, enabled, **kwargs)
end

#key_pair(key, value, **kwargs) ⇒ Object



25
26
27
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 25

def key_pair(key, value, **kwargs)
  elements << KeyPair.new(key, value, **kwargs)
end

#option(key, value) ⇒ Object



29
30
31
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 29

def option(key, value)
  elements << Option.new(key, value)
end

#outputObject



53
54
55
56
57
58
59
60
61
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 53

def output
  chunks = []
  chunks << tag
  elements.each do |e|
    o = e.output
    chunks << o unless o.blank?
  end
  chunks.join(' ')
end

#output!Object



63
64
65
66
67
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 63

def output!
  res = output
  elements.clear
  res
end

#quoted_string(value) ⇒ Object



33
34
35
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 33

def quoted_string(value)
  elements << QuotedString.new(value)
end

#raw_value(value) ⇒ Object



37
38
39
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 37

def raw_value(value)
  elements << RawValue.new(value)
end

#value_array(*values) ⇒ Object



41
42
43
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 41

def value_array(*values)
  elements << ValueArray.new(*values)
end

#value_list(*values) ⇒ Object



45
46
47
# File 'lib/holodekk/docker/dockerfile/instruction_builder.rb', line 45

def value_list(*values)
  elements << ValueList.new(*values)
end