X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f26cbf1c4d949d3e7c7b26ab27c5f4d48d8059ed..0042e4b42d9f4d3900aefc68617cb28c5a61a522:/apps/workbench/app/helpers/collections_helper.rb diff --git a/apps/workbench/app/helpers/collections_helper.rb b/apps/workbench/app/helpers/collections_helper.rb index df0ba22eac..23933cf599 100644 --- a/apps/workbench/app/helpers/collections_helper.rb +++ b/apps/workbench/app/helpers/collections_helper.rb @@ -5,7 +5,40 @@ module CollectionsHelper end end + ## + # Regex match for collection UUIDs, returns a regex match object with the + # hash in group 1, (optional) size in group 2, (optional) subsequent uuid + # fields in group 3, and (optional) file path within the collection as group + # 4; or nil for no match. + # + # +uuid+ the uuid string to match + # def self.match(uuid) - /^([a-f0-9]{32}(\+[0-9]+)?)(\+.*)?$/.match(uuid.to_s) + /^([a-f0-9]{32})(\+[0-9]+)?(\+.*?)?(\/.*)?$/.match(uuid.to_s) + end + + ## + # Regex match for common image file extensions, returns a regex match object + # with the matched extension in group 1; or nil for no match. + # + # +file+ the file string to match + # + def self.is_image file + /\.(jpg|jpeg|gif|png|svg)$/i.match(file) + end + + ## + # Generates a relative file path than can be appended to the URL of a + # collection to get a file download link without adding a spurious ./ at the + # beginning for files in the default stream. + # + # +file+ an entry in the Collection.files list in the form [stream, name, size] + # + def self.file_path file + f0 = file[0] + f0 = '' if f0 == '.' + f0 = f0[2..-1] if f0[0..1] == './' + f0 += '/' if not f0.empty? + file_path = "#{f0}#{file[1]}" end end