X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/40b15b9523c1a89769c8df5bafa250075af0c567..3566686444d84498031b8fdef9cbe78bcbf54b9a:/services/api/app/models/collection.rb diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb index 66d7addb45..6c5e1acc4e 100644 --- a/services/api/app/models/collection.rb +++ b/services/api/app/models/collection.rb @@ -10,6 +10,7 @@ class Collection < ArvadosModel before_validation :strip_manifest_text before_validation :set_portable_data_hash validate :ensure_hash_matches_manifest_text + before_save :set_file_names # Query only undeleted collections by default. default_scope where("expires_at IS NULL or expires_at > CURRENT_TIMESTAMP") @@ -126,6 +127,20 @@ class Collection < ArvadosModel end end + def set_file_names + if self.manifest_text_changed? + file_names = [] + if self.manifest_text + self.manifest_text.split.each do |part| + file_name = part.rpartition(':')[-1] + file_names << file_name if file_name != '.' + end + end + self.file_names = file_names.uniq.join(" ")[0,2**13] + end + true + end + def check_encoding if manifest_text.encoding.name == 'UTF-8' and manifest_text.valid_encoding? true