end
end
- # yields collection id (pdh or uuid), and full file_path
- def cwl_input_collections(path, &b)
- case path
- when ArvadosBase
- path.class.columns.each do |c|
- cwl_input_collections(path[c.name.to_sym], &b)
- end
- when Hash
- path.each do |k, v|
- cwl_input_collections(v, &b)
- end
- when Array
- path.each do |v|
- cwl_input_collections(v, &b)
- end
- when String
- if m = /[a-f0-9]{32}\+\d+/.match(path)
- yield m[0], path.split('keep:')[-1]
- elsif m = /[0-9a-z]{5}-4zz18-[0-9a-z]{15}/.match(path)
- yield m[0], path.split('keep:')[-1]
- end
- end
- end
-
def render_arvados_object_list_start(list, button_text, button_href,
params={}, *rest, &block)
show_max = params.delete(:show_max) || 3
render_runtime duration, use_words, round_to_min
end
+ # Keep locators are expected to be of the form \"...<pdh/file_path>\"
+ JSON_KEEP_LOCATOR_REGEXP = /(.*)(([0-9a-f]{32}\+\d+)(.*)\"(.*))/
+ def keep_locator_in_json str
+ JSON_KEEP_LOCATOR_REGEXP.match str
+ end
+
private
def is_textile?( object, attr )
is_textile = object.textile_attributes.andand.include?(attr)