class DTK::DSL::Template::V1::Workflow
Constants
- INTERPRETED_KEYS
Public Class Methods
generate_elements(workflows_content, parent)
click to toggle source
For generation
# File lib/dsl/template/v1/workflow.rb, line 61 def self.generate_elements(workflows_content, parent) workflows_content.inject({}) do |h, (name, workflow)| h.merge(name => generate_element(workflow, parent)) end end
parse_elements(input_hash, parent_info)
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 42 def self.parse_elements(input_hash, parent_info) input_hash.inject(file_parser_output_hash) do |h, (name, workflow)| h.merge(name => parse_element(workflow, parent_info, :index => name)) end end
Public Instance Methods
generate!()
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 67 def generate! set? :Name, val(:Name) set? :SubtaskOrder, val(:SubtaskOrder) if subtasks = val(:Subtasks) generated_subtasks = subtasks.map do |subtask| generated_subtask = generate_subtask(subtask) generated_subtask.empty? ? nil : generated_subtask end.compact set :Subtasks, generated_subtasks unless generated_subtasks.empty? end merge(uninterpreted_keys) end
parse!()
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 48 def parse! remove_processed_keys_from_input_hash! do set? :Import, input_key_value?(:Import) set? :Flatten, input_key_value?(:Flatten) set? :Name, input_key_value?(:Name) set? :SubtaskOrder, input_key_value?(:SubtaskOrder) set? :Subtasks, parse_subtasks? end # handle keys not processed merge change_strings_to_symbols(input_hash) unless input_hash.empty? end
parser_output_type()
click to toggle source
For parsing
# File lib/dsl/template/v1/workflow.rb, line 38 def parser_output_type :hash end
Private Instance Methods
change_strings_to_symbols(obj)
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 120 def change_strings_to_symbols(obj) if obj.kind_of?(::Hash) obj.inject({}) { |h, (k, v)| h.merge(k.to_sym => change_strings_to_symbols(v)) } elsif obj.kind_of?(::Array) obj.map { |el| change_strings_to_symbols(el) } else obj end end
change_symbols_to_strings(obj)
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 108 def change_symbols_to_strings(obj) if obj.kind_of?(::Hash) obj.inject({}) { |h, (k, v)| h.merge(k.to_s => change_symbols_to_strings(v)) } elsif obj.kind_of?(::Array) obj.map { |el| change_symbols_to_strings(el) } elsif obj.kind_of?(::Symbol) obj.to_s else obj end end
generate_subtask(subtask)
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 94 def generate_subtask(subtask) self.class.create_for_generation(subtask, :top => @top, :filter => @filter).generate_yaml_object end
parse_subtasks?()
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 82 def parse_subtasks? if subtasks = input_key_value?(:Subtasks) ret = file_parser_output_array subtasks.each_with_index do |subtask, i| # TODO: should parent_info instead be Parsing::ParentInfo.new(self, :subtasks) parent_info = Parsing::ParentInfo.new(self, :workflow) ret << self.class.parse_element(subtask, parent_info, :index => i) end ret end end
uninterpreted_keys()
click to toggle source
# File lib/dsl/template/v1/workflow.rb, line 102 def uninterpreted_keys (@content.keys - INTERPRETED_KEYS).inject({}) do |h, k| h.merge(k.to_s => change_symbols_to_strings(@content[k])) end end