Method: Libis::Workflow::Base::Workflow#prepare_input

Defined in:
lib/libis/workflow/base/workflow.rb

#prepare_input(options) ⇒ Object

Parameters:

  • options (Hash)


104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/libis/workflow/base/workflow.rb', line 104

def prepare_input(options)
  options = options.key_strings_to_symbols
  result = {}
  self.input.each do |key, parameter|
    if options.has_key?(key)
      value = parameter.parse(options[key])
    elsif !parameter[:default].nil?
      value = parameter[:default]
    else
      next
    end
    propagate_to = []
    propagate_to = parameter[:propagate_to] if parameter[:propagate_to].is_a? Array
    propagate_to = parameter[:propagate_to].split(/[\s,;]+/) if parameter[:propagate_to].is_a? String
    result[key] = value if propagate_to.empty?
    propagate_to.each do |target|
      task_name, param_name = target.split('#')
      param_name ||= key.to_s
      result[task_name] ||= {}
      result[task_name][param_name] = value
    end
  end
  result
end