From 02191a08fdd2b4267167230525dfbe676d751ce9 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sun, 12 Aug 2018 23:37:19 +0000 Subject: [PATCH] Replace mime-types gem with more efficient mini_mime gem (#29359). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contributed by Pavel Rosický. git-svn-id: http://svn.redmine.org/redmine/trunk@17468 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- Gemfile | 2 +- lib/redmine/mime_type.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index bfd3d067f..bbd80f5a9 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 "mime-types", "~> 3.0" +gem "mini_mime", "~> 1.0" 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 38b6409aa..090bc506e 100644 --- a/lib/redmine/mime_type.rb +++ b/lib/redmine/mime_type.rb @@ -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]