class DTK::DSL::Template::V1::Assembly

Public Class Methods

elements_collection_type() click to toggle source

For parsing

# File lib/dsl/template/v1/assembly.rb, line 40
def self.elements_collection_type
  :hash
end
parse_elements(input_hash, parent_info) click to toggle source
# File lib/dsl/template/v1/assembly.rb, line 44
def self.parse_elements(input_hash, parent_info)
  ret = file_parser_output_array
  input_hash.each do |name, content|
    ret << parse_element(content.merge('name' => name), parent_info, :index => name)
  end
  ret
end

Public Instance Methods

generate!() click to toggle source

For generation

# File lib/dsl/template/v1/assembly.rb, line 67
def generate!
  set :Description, val(:Description)
  set :Target, val(:Target)
  set :Attributes, generate_child_elements(:attribute, val(:Attributes))
  set :Components, generate_child_elements(:component, val(:Components))
  set :Nodes, generate_child_elements(:node, val(:Nodes))
  set :Actions, generate_child_elements(:workflow, val(:Workflows))
end
parse!() click to toggle source
# File lib/dsl/template/v1/assembly.rb, line 52
def parse!
  remove_processed_keys_from_input_hash! do
    set  :Name, input_key_value(:Name)
    set? :Description, input_key_value?(:Description)
    set? :Target, input_key_value?(:Target)
    set? :Attributes, parse_child_elements?(:attribute, :Attributes)
    set? :Nodes, parse_child_elements?(:node, :Nodes)
    set? :Components, parse_child_elements?(:component, :Components)
    set? :Workflows, parse_child_elements?(:workflow, :Workflows)
  end
  # handle keys not processed
   merge input_hash unless input_hash.empty?
end