Merge branch '3021-api-performance' refs #3021
[arvados.git] / services / api / app / models / collection.rb
index 35f8533456a7bdde36936a70f482d228db6941fd..457fb5f778cb3429d0d19f3104b6142a2a171dfe 100644 (file)
@@ -129,20 +129,28 @@ class Collection < ArvadosModel
 
   def set_file_names
     if self.manifest_text_changed?
-      self.file_names = Collection.manifest_files self.manifest_text
+      self.file_names = manifest_files
     end
     true
   end
 
-  def self.manifest_files manifest_text
+  def manifest_files
     names = ''
-    if manifest_text
-      manifest_text.scan(/ \d+:\d+:(\S+)/) do |name|
-        names << name.first.gsub('\040',' ') + "\n" 
-        break if names.length > 2**13
+    if self.manifest_text
+      self.manifest_text.scan(/ \d+:\d+:(\S+)/) do |name|
+        names << name.first.gsub('\040',' ') + "\n"
+        break if names.length > 2**12
       end
     end
-    names[0,2**13]
+
+    if self.manifest_text and names.length < 2**12
+      self.manifest_text.scan(/^\.\/(\S+)/m) do |stream_name|
+        names << stream_name.first.gsub('\040',' ') + "\n"
+        break if names.length > 2**12
+      end
+    end
+
+    names[0,2**12]
   end
 
   def check_encoding