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
|