5145: better pattern matching for manifest text files
authorRadhika Chippada <radhika@curoverse.com>
Mon, 9 Mar 2015 20:57:09 +0000 (16:57 -0400)
committerRadhika Chippada <radhika@curoverse.com>
Mon, 9 Mar 2015 20:57:09 +0000 (16:57 -0400)
apps/workbench/app/controllers/actions_controller.rb
services/api/test/fixtures/collections.yml

index 0f3a853b65ed076ece2f7fb9e5ef77771aa7788f..6569abea99311f20e5ae4cc1152c322a0eaa6786 100644 (file)
@@ -169,10 +169,15 @@ class ActionsController < ApplicationController
         manifest_file = m[4].split('/')[-1]
         uniq_file = derive_unique_filename(manifest_file, manifest_files)
         normalized = arv_normalize mt, '--extract', ".#{m[4]}"
-        normalized = normalized.gsub(manifest_file) {|s| uniq_file}
+        index = normalized.rindex manifest_file
+        part1 = normalized[0, index]
+        part2 = normalized[index, normalized.length]
+        part2 = part2.gsub(manifest_file) {|s| uniq_file}
+        normalized = part1 + part2
         combined += normalized
         manifest_files << uniq_file
       else
+        mt = arv_normalize mt
         manifest_streams = mt.split "\n"
         adjusted_streams = []
         manifest_streams.each do |stream|
@@ -185,7 +190,7 @@ class ActionsController < ApplicationController
           end
 
           manifest_parts.each do |part|
-            part_match = /\d*:\d*:(.*)/.match(part)
+            part_match = /\d*:\d*:(\S+)/.match(part)
             if part_match
               uniq_file = derive_unique_filename(part_match[1], manifest_files)
               adjusted_parts << (part.gsub(part_match[1]) {|s| uniq_file})
index 5611d692945fcf53b6e79bb34b159358e13692a8..b09dae49c78f91653fad43dd25c222e072533d88 100644 (file)
@@ -79,7 +79,7 @@ multilevel_collection_1:
   modified_by_user_uuid: zzzzz-tpzed-d9tiejq69daie8f
   modified_at: 2014-02-03T17:22:54Z
   updated_at: 2014-02-03T17:22:54Z
-  manifest_text: ". 0:0:file1 0:0:file2 0:0:file3\n./dir1 0:0:file1 0:0:file2 0:0:file3\n./dir1/subdir 0:0:file1 0:0:file2 0:0:file3\n./dir2 0:0:file1 0:0:file2 0:0:file3\n"
+  manifest_text: ". 85877ca2d7e05498dd3d109baf2df106+95+A3a4e26a366ee7e4ed3e476ccf05354761be2e4ae@545a9920 0:0:file1 0:0:file2 0:0:file3\n./dir1 85877ca2d7e05498dd3d109baf2df106+95+A3a4e26a366ee7e4ed3e476ccf05354761be2e4ae@545a9920 0:0:file1 0:0:file2 0:0:file3\n./dir1/subdir 85877ca2d7e05498dd3d109baf2df106+95+A3a4e26a366ee7e4ed3e476ccf05354761be2e4ae@545a9920 0:0:file1 0:0:file2 0:0:file3\n./dir2 85877ca2d7e05498dd3d109baf2df106+95+A3a4e26a366ee7e4ed3e476ccf05354761be2e4ae@545a9920 0:0:file1 0:0:file2 0:0:file3\n"
   name: multilevel_collection_1
 
 multilevel_collection_2: