Class: ForemanDeployments::ReferenceVisitor

Inherits:
Object
  • Object
show all
Defined in:
app/lib/foreman_deployments/stack_parser.rb

Instance Method Summary collapse

Constructor Details

#initializeReferenceVisitor

Returns a new instance of ReferenceVisitor.



8
9
10
# File 'app/lib/foreman_deployments/stack_parser.rb', line 8

def initialize
  @references = []
end

Instance Method Details



24
25
26
27
28
29
30
31
32
33
# File 'app/lib/foreman_deployments/stack_parser.rb', line 24

def link_references(stack_definition)
  @references.each do |ref|
    task = stack_definition.tasks[ref.task_id]
    if task.nil?
      fail(UnknownReference, _('%s references unknown task') % ref.task_id)
    else
      ref.task = task
    end
  end
end

#save_reference(reference) ⇒ Object



20
21
22
# File 'app/lib/foreman_deployments/stack_parser.rb', line 20

def save_reference(reference)
  @references << reference
end

#visit(subject) ⇒ Object



12
13
14
15
16
17
18
# File 'app/lib/foreman_deployments/stack_parser.rb', line 12

def visit(subject)
  if subject.is_a? ForemanDeployments::TaskReference
    save_reference(subject)
  elsif subject.is_a? ForemanDeployments::StackDefinition
    link_references(subject)
  end
end