Class: DTK::DSL::Template::V1::Assembly

Inherits:
DTK::DSL::Template::V1 show all
Defined in:
lib/dsl/template/v1/assembly.rb

Defined Under Namespace

Modules: Constant

Constant Summary

Constants inherited from DTK::DSL::Template::V1

VERSION

Instance Attribute Summary

Attributes included from NestedDSLFile::Mixin

#nested_file_content

Attributes included from Generation::Mixin

#filter, #top

Attributes included from Parsing::Mixin

#file_obj, #parent_key

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DTK::DSL::Template::V1

#dsl_version, #template_version

Methods inherited from DTK::DSL::Template

#add, create_for_generation, create_for_parsing, #initialize, #merge, #req, #set, #set?, #val

Methods included from Parsing::ClassMixin

#elements_collection_type, #file_parser_output_array, #file_parser_output_hash, #parse_element, #parse_elements

Methods included from Generation::ClassMixin

#generate_elements

Methods included from Generation::Mixin

#generate?, #generate_yaml_file_path__content_array, #generate_yaml_object, #generate_yaml_object?, #generate_yaml_text, #yaml_object_type

Methods included from Parsing::Mixin

#parse, #parser_output_type, #parsing_error

Constructor Details

This class inherits a constructor from DTK::DSL::Template

Class Method Details

.elements_collection_typeObject

For parsing



40
41
42
# File 'lib/dsl/template/v1/assembly.rb', line 40

def self.elements_collection_type
  :hash
end

.parse_elements(input_hash, parent_info) ⇒ Object



44
45
46
47
48
49
50
# 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

Instance Method Details

#generate!Object

For generation



67
68
69
70
71
72
73
74
# File 'lib/dsl/template/v1/assembly.rb', line 67

def generate!
  # TODO: add attributes
  set :Description, val(:Description)
  set :Target, val(:Target)
  set :Components, generate_child_elements(:component, val(:Components))
  set :Nodes, generate_child_elements(:node, val(:Nodes))
  set :Workflows, generate_child_elements(:workflow, val(:Workflows))
end

#parse!Object



52
53
54
55
56
57
58
59
60
61
62
63
64
# 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