aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2012-08-20 11:33:16 -0500
committerJoshua Peek <josh@joshpeek.com>2012-08-20 11:33:16 -0500
commitb85aeaad3e8cbbc8e910911166f78394c24bf8a5 (patch)
tree64b84f93895dbbec4cc26dd86d83fa25d4af619e
parent64f350922255b3572b9062200bc6be326b609315 (diff)
Inline mime type lookup into blob helper
-rw-r--r--lib/linguist/blob_helper.rb5
-rw-r--r--lib/linguist/mime.rb18
-rw-r--r--test/test_mime.rb48
3 files changed, 4 insertions, 67 deletions
diff --git a/lib/linguist/blob_helper.rb b/lib/linguist/blob_helper.rb
index 09d1bf3..75bee67 100644
--- a/lib/linguist/blob_helper.rb
+++ b/lib/linguist/blob_helper.rb
@@ -32,7 +32,10 @@ module Linguist
#
# Returns a mime type String.
def mime_type
- @mime_type ||= Mime.mime_for(extname.to_s)
+ @mime_type ||= begin
+ mime_type = Mime.lookup_mime_type_for(extname.to_s)
+ mime_type ? mime_type.to_s : 'text/plain'
+ end
end
# Public: Get the Content-Type header value
diff --git a/lib/linguist/mime.rb b/lib/linguist/mime.rb
index 59f30ad..a1e5555 100644
--- a/lib/linguist/mime.rb
+++ b/lib/linguist/mime.rb
@@ -3,24 +3,6 @@ require 'yaml'
module Linguist
module Mime
- # Internal: Look up mime type for extension.
- #
- # ext - The extension String. May include leading "."
- #
- # Examples
- #
- # Mime.mime_for('.html')
- # # => 'text/html'
- #
- # Mime.mime_for('txt')
- # # => 'text/plain'
- #
- # Return mime type String otherwise falls back to 'text/plain'.
- def self.mime_for(ext)
- mime_type = lookup_mime_type_for(ext)
- mime_type ? mime_type.to_s : 'text/plain'
- end
-
# Internal: Lookup mime type for extension or mime type
#
# ext_or_mime_type - A file extension ".txt" or mime type "text/plain".
diff --git a/test/test_mime.rb b/test/test_mime.rb
deleted file mode 100644
index 81c212e..0000000
--- a/test/test_mime.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-require 'linguist/mime'
-
-require 'test/unit'
-
-class TestMime < Test::Unit::TestCase
- include Linguist
-
- def test_extension_lookup
- # Default to plain text if we have no idea.
- assert_equal 'text/plain', Mime.mime_for(nil)
- assert_equal 'text/plain', Mime.mime_for('')
-
- # Add an assertion to this list if you add/change any extensions
- # in mimes.yml. Its still useful to test even trivial cases since
- # MIME::Type's extension lookup may return multiple matches and we
- # only pick one of them. Please keep this list alphabetized.
- assert_equal 'application/javascript', Mime.mime_for('.js')
- assert_equal 'application/octet-stream', Mime.mime_for('.dll')
- assert_equal 'application/octet-stream', Mime.mime_for('.dmg')
- assert_equal 'application/octet-stream', Mime.mime_for('.exe')
- assert_equal 'application/postscript', Mime.mime_for('.ai')
- assert_equal 'application/postscript', Mime.mime_for('.eps')
- assert_equal 'application/postscript', Mime.mime_for('.ps')
- assert_equal 'application/vnd.adobe.air-application-installer-package+zip', Mime.mime_for('.air')
- assert_equal 'application/vnd.oasis.opendocument.presentation', Mime.mime_for('.odp')
- assert_equal 'application/vnd.oasis.opendocument.spreadsheet', Mime.mime_for('.ods')
- assert_equal 'application/vnd.oasis.opendocument.text', Mime.mime_for('.odt')
- assert_equal 'application/vnd.openxmlformats-officedocument.presentationml.presentation', Mime.mime_for('.pptx')
- assert_equal 'application/x-debian-package', Mime.mime_for('.deb')
- assert_equal 'application/x-latex', Mime.mime_for('.latex')
- assert_equal 'application/x-perl', Mime.mime_for('.pl')
- assert_equal 'application/x-perl', Mime.mime_for('.pm')
- assert_equal 'application/x-python', Mime.mime_for('.py')
- assert_equal 'application/x-ruby', Mime.mime_for('.rb')
- assert_equal 'application/x-sh', Mime.mime_for('.sh')
- assert_equal 'application/x-shockwave-flash', Mime.mime_for('.swf')
- assert_equal 'text/html', Mime.mime_for('.html')
- assert_equal 'text/plain', Mime.mime_for('.c')
- assert_equal 'text/plain', Mime.mime_for('.cc')
- assert_equal 'text/plain', Mime.mime_for('.cpp')
- assert_equal 'text/plain', Mime.mime_for('.cxx')
- assert_equal 'text/plain', Mime.mime_for('.h')
- assert_equal 'text/plain', Mime.mime_for('.hh')
- assert_equal 'text/plain', Mime.mime_for('.hpp')
- assert_equal 'text/plain', Mime.mime_for('.kt')
- assert_equal 'video/quicktime', Mime.mime_for('.mov')
- end
-end