From a65252b94ee91dc1159d68bc685dad30c73a81af Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 13 Jun 2011 21:21:44 -0500 Subject: [PATCH] Prefer text mime types over binary ones --- lib/linguist/mime.rb | 21 ++++++++------------- lib/linguist/mimes.yml | 2 -- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/lib/linguist/mime.rb b/lib/linguist/mime.rb index 6143030f..93f31797 100644 --- a/lib/linguist/mime.rb +++ b/lib/linguist/mime.rb @@ -19,18 +19,7 @@ File.read(File.expand_path("../mimes.yml", __FILE__)).lines.each do |line| if extensions extensions.split(/,/).each do |extension| - if extension =~ /^-(\w+)/ - extension = $1 - mime_type.extensions.delete(extension) - - MIME::Types.instance_eval do - @__types__.instance_eval do - @extension_index[extension].delete(mime_type) - end - end - else - mime_type.extensions << extension - end + mime_type.extensions << extension end end @@ -72,6 +61,8 @@ module Linguist # Internal: Lookup mime type for extension or mime type # + # ext_or_mime_type - A file extension ".txt" or mime type "text/plain". + # # Returns a MIME::Type def self.lookup_mime_type_for(ext_or_mime_type) ext_or_mime_type ||= '' @@ -82,7 +73,11 @@ module Linguist guesses = ::MIME::Types.type_for(ext_or_mime_type) end - guesses.first + # Prefer text mime types over binary + guesses.detect { |type| type.ascii? } || + + # Otherwise use the first guess + guesses.first end end end diff --git a/lib/linguist/mimes.yml b/lib/linguist/mimes.yml index c2bc2357..813aa85a 100644 --- a/lib/linguist/mimes.yml +++ b/lib/linguist/mimes.yml @@ -39,7 +39,6 @@ application/vnd.openofficeorg.extension @oxt application/vnd.openxmlformats-officedocument.presentationml.presentation @pptx application/x-chrome-extension @crx application/x-ms-xbap @xbap :8bit -application/x-pagemaker @-pm application/x-shockwave-flash @swf application/x-silverlight-app @xap application/x-troff-ms :8bit @@ -48,4 +47,3 @@ application/xaml+xml @xaml :8bit image/x-icns @icns text/cache-manifest @manifest text/x-nimrod @nim -video/vnd.nokia.interleaved-multimedia @-nim