aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2012-08-20 11:29:22 -0500
committerJoshua Peek <josh@joshpeek.com>2012-08-20 11:29:22 -0500
commit64f350922255b3572b9062200bc6be326b609315 (patch)
tree2b7a44d7d5f96ac2601fb09ea13f55f05d34ce3e
parentf8df871d85057633714002d9650408dbebd7834e (diff)
Remove other mime type hacks
-rw-r--r--lib/linguist/mime.rb50
-rw-r--r--lib/linguist/mimes.yml38
-rw-r--r--test/test_blob.rb2
-rw-r--r--test/test_mime.rb12
4 files changed, 2 insertions, 100 deletions
diff --git a/lib/linguist/mime.rb b/lib/linguist/mime.rb
index e280209..59f30ad 100644
--- a/lib/linguist/mime.rb
+++ b/lib/linguist/mime.rb
@@ -1,49 +1,6 @@
require 'mime/types'
require 'yaml'
-class MIME::Type
- attr_accessor :override
-end
-
-# Register additional mime type extensions
-#
-# Follows same format as mime-types data file
-# https://github.com/halostatue/mime-types/blob/master/lib/mime/types.rb.data
-File.read(File.expand_path("../mimes.yml", __FILE__)).lines.each do |line|
- # Regexp was cargo culted from mime-types lib
- next unless line =~ %r{^
- #{MIME::Type::MEDIA_TYPE_RE}
- (?:\s@([^\s]+))?
- (?:\s:(#{MIME::Type::ENCODING_RE}))?
- }x
-
- mediatype = $1
- subtype = $2
- extensions = $3
- encoding = $4
-
- # Lookup existing mime type
- mime_type = MIME::Types["#{mediatype}/#{subtype}"].first ||
- # Or create a new instance
- MIME::Type.new("#{mediatype}/#{subtype}")
-
- if extensions
- extensions.split(/,/).each do |extension|
- mime_type.extensions << extension
- end
- end
-
- if encoding
- mime_type.encoding = encoding
- end
-
- mime_type.override = true
-
- # Kind of hacky, but we need to reindex the mime type after making changes
- MIME::Types.add_type_variant(mime_type)
- MIME::Types.index_extensions(mime_type)
-end
-
module Linguist
module Mime
# Internal: Look up mime type for extension.
@@ -78,11 +35,8 @@ module Linguist
guesses = ::MIME::Types.type_for(ext_or_mime_type)
end
- # Use custom override first
- guesses.detect { |type| type.override } ||
-
- # Prefer text mime types over binary
- guesses.detect { |type| type.ascii? } ||
+ # Prefer text mime types over binary
+ guesses.detect { |type| type.ascii? } ||
# Otherwise use the first guess
guesses.first
diff --git a/lib/linguist/mimes.yml b/lib/linguist/mimes.yml
deleted file mode 100644
index a410f4b..0000000
--- a/lib/linguist/mimes.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-# Additional types to add to MIME::Types
-#
-# MIME types are used to set the Content-Type of raw binary blobs. All text
-# blobs are served as text/plain regardless of their type to ensure they
-# open in the browser rather than downloading.
-#
-# The encoding helps determine whether a file should be treated as plain
-# text or binary. By default, a mime type's encoding is base64 (binary).
-# These types will show a "View Raw" link. To force a type to render as
-# plain text, set it to 8bit for UTF-8. text/* types will be treated as
-# text by default.
-#
-# <type> @<extensions> :<encoding>
-#
-# type - mediatype/subtype
-# extensions - comma seperated extension list
-# encoding - base64 (binary), 7bit (ASCII), 8bit (UTF-8), or
-# quoted-printable (Printable ASCII).
-#
-# Follows same format as mime-types data file
-# https://github.com/halostatue/mime-types/blob/master/lib/mime/types.rb.data
-#
-# Any additions or modifications (even trivial) should have corresponding
-# test change in `test/test_mime.rb`.
-
-# Please keep this list alphabetized
-application/java-archive @ear,war
-application/octet-stream @o
-application/x-chrome-extension @crx
-application/x-supercollider @sc :8bit
-application/xslt+xml @xslt :8bit
-image/x-icns @icns
-text/cache-manifest @manifest
-text/plain @cu,cxx
-text/x-logtalk @lgt
-text/x-nimrod @nim
-text/x-ocaml @ml,mli,mll,mly,sig,sml
-text/x-scheme @rkt,scm,sls,sps,ss
diff --git a/test/test_blob.rb b/test/test_blob.rb
index 8dcce3d..0832b8f 100644
--- a/test/test_blob.rb
+++ b/test/test_blob.rb
@@ -30,7 +30,6 @@ class TestBlob < Test::Unit::TestCase
end
def test_mime_type
- assert_equal "application/octet-stream", blob("Binary/dog.o").mime_type
assert_equal "application/postscript", blob("Binary/octocat.ai").mime_type
assert_equal "application/x-ruby", blob("Ruby/grit.rb").mime_type
assert_equal "application/x-sh", blob("Shell/script.sh").mime_type
@@ -40,7 +39,6 @@ class TestBlob < Test::Unit::TestCase
end
def test_content_type
- assert_equal "application/octet-stream", blob("Binary/dog.o").content_type
assert_equal "application/pdf", blob("Binary/foo.pdf").content_type
assert_equal "audio/ogg", blob("Binary/foo.ogg").content_type
assert_equal "image/png", blob("Binary/foo.png").content_type
diff --git a/test/test_mime.rb b/test/test_mime.rb
index 8c0f1d1..81c212e 100644
--- a/test/test_mime.rb
+++ b/test/test_mime.rb
@@ -26,11 +26,7 @@ class TestMime < Test::Unit::TestCase
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-chrome-extension', Mime.mime_for('.crx')
assert_equal 'application/x-debian-package', Mime.mime_for('.deb')
- assert_equal 'application/x-java-archive', Mime.mime_for('.ear')
- assert_equal 'application/x-java-archive', Mime.mime_for('.jar')
- assert_equal 'application/x-java-archive', Mime.mime_for('.war')
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')
@@ -38,23 +34,15 @@ class TestMime < Test::Unit::TestCase
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 'application/x-supercollider', Mime.mime_for('.sc')
- assert_equal 'text/cache-manifest', Mime.mime_for('.manifest')
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('.cu')
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 'text/x-logtalk', Mime.mime_for('.lgt')
- assert_equal 'text/x-nimrod', Mime.mime_for('.nim')
- assert_equal 'text/x-ocaml', Mime.mime_for('.ml')
- assert_equal 'text/x-ocaml', Mime.mime_for('.sig')
- assert_equal 'text/x-ocaml', Mime.mime_for('.sml')
assert_equal 'video/quicktime', Mime.mime_for('.mov')
end
end