From c0df5d1ae269f5fdf274f0a1d3e188b2b2760d06 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Wed, 15 Aug 2018 14:01:31 +0000 Subject: [PATCH] Refactor Redmine::MimeType.of. Uses MiniMime.lookup_by_extension instead of lookup_by_filename (#29359). git-svn-id: http://svn.redmine.org/redmine/trunk@17473 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- Gemfile | 2 +- lib/redmine/mime_type.rb | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index bbd80f5a9..69a86c716 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ end gem "rails", "5.2.1" gem "coderay", "~> 1.1.1" gem "request_store", "1.0.5" -gem "mini_mime", "~> 1.0" +gem "mini_mime", "~> 1.0.1" gem "actionpack-xml_parser" gem "roadie-rails", "~> 1.3.0" gem "roadie", "~> 3.2.1" diff --git a/lib/redmine/mime_type.rb b/lib/redmine/mime_type.rb index 73ac1fe4c..46be81b49 100644 --- a/lib/redmine/mime_type.rb +++ b/lib/redmine/mime_type.rb @@ -59,15 +59,11 @@ module Redmine # returns mime type for name or nil if unknown def self.of(name) - return nil unless name.present? - extension = File.extname(name)[1..-1].to_s.downcase - if extension.present? - @known_types ||= Hash.new do |h, ext| - type = EXTENSIONS[ext] - type ||= MiniMime.lookup_by_filename("a.#{ext}").try(:content_type) - h[ext] = type - end - @known_types[extension] + ext = File.extname(name.to_s)[1..-1] + if ext + ext.downcase! + EXTENSIONS[ext] || + ((mi = MiniMime.lookup_by_extension(ext)) && mi.content_type) end end