]> source.dussan.org Git - redmine.git/commitdiff
Replace mime-types gem with more efficient mini_mime gem (#29359).
authorGo MAEDA <maeda@farend.jp>
Sun, 12 Aug 2018 23:37:19 +0000 (23:37 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 12 Aug 2018 23:37:19 +0000 (23:37 +0000)
Contributed by Pavel Rosický.

git-svn-id: http://svn.redmine.org/redmine/trunk@17468 e93f8b46-1217-0410-a6f0-8f06a7374b81

Gemfile
lib/redmine/mime_type.rb

diff --git a/Gemfile b/Gemfile
index bfd3d067fe4d01f660ee6973693a40ee85c11e4b..bbd80f5a9e087a123850a42ae4b8c3a2f4305176 100644 (file)
--- 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 "mime-types", "~> 3.0"
+gem "mini_mime", "~> 1.0"
 gem "actionpack-xml_parser"
 gem "roadie-rails", "~> 1.3.0"
 gem "roadie", "~> 3.2.1"
index 38b6409aa650be40c3eeee9c2da4b424e81dce27..090bc506e20de62b85e854004539e9134dfbc55b 100644 (file)
@@ -62,11 +62,11 @@ module Redmine
     # returns mime type for name or nil if unknown
     def self.of(name)
       return nil unless name.present?
-      if m = name.to_s.match(/(^|\.)([^\.]+)$/)
-        extension = m[2].downcase
+      extension = File.extname(name)[1..-1].to_s.downcase
+      if extension.present?
         @known_types ||= Hash.new do |h, ext|
           type = EXTENSIONS[ext]
-          type ||= MIME::Types.type_for(ext).first.to_s.presence
+          type ||= MiniMime.lookup_by_filename("a.#{ext}").try(:content_type)
           h[ext] = type
         end
         @known_types[extension]