diff options
author | Renato "Lond" Cerqueira <renato@lond.com.br> | 2018-03-08 02:25:10 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-03-08 02:25:10 +0100 |
commit | 9aba44ea79c4c1bd21e9232b65f3cf1a9736c6cc (patch) | |
tree | 8cbe2459ee09f3ce894c7fddc27c6f578b6618c6 | |
parent | 6dcf96271ee5b81ecb910f80f8218bb2a9b1b404 (diff) |
Rescue when there's no extension in the remotable (#6358)
* Rescue when there's no extension in the remotable Sometimes the remotable is pointing to a directory with no file extension. Maybe it should not be expecting to identify based on extensions to begin with, but since it's the case, it should be ready for it. * Fix codeclimate issue * Check if filename is nil instead of rescueing exception Suggestion made in the PR * Avoid concatenation issue if filename is nil If filename is nil, extname was undefined * Invert condition Address PR comments
-rw-r--r-- | app/models/concerns/remotable.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb index 990035b34..020303a2f 100644 --- a/app/models/concerns/remotable.rb +++ b/app/models/concerns/remotable.rb @@ -28,7 +28,11 @@ module Remotable matches = response.headers['content-disposition']&.match(/filename="([^"]*)"/) filename = matches.nil? ? parsed_url.path.split('/').last : matches[1] basename = SecureRandom.hex(8) - extname = File.extname(filename) + extname = if filename.nil? + '' + else + File.extname(filename) + end send("#{attachment_name}=", StringIO.new(response.to_s)) send("#{attachment_name}_file_name=", basename + extname) |