,, , ,,,, ,____, | (-/ (-/ (- | \ | (- | (- | _,(- | \ | (- | _,_/,_ | \ | ,_ | , _ | _, | \ | ,_ | , | ( ( ( ( ( ( ( | , ,,____, | (- | (-_/(- | __ | - | _, | _ | , _ | , _ | _ | __, | ( ( ( ( | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
libmagic bindings by dsturnbull |
+------------------------------------------
SYNOPSIS $ gem install content_type irb> require 'content_type' irb> File.content_type('file.pdf') #=> "application/pdf" irb> File.open('file.doc').content_type #=> "application/msword" irb> "hi".content_type #=> "text/plain" irb> ContentType.new('file.jpg').content_type #=> "image/jpeg"
DESCRIPTION ContentType is a simple C extension that binds to libmagic in order to efficiently detect mime types of files.
Using the should_be_faster rspec extension,
ext.should be_at_least(5).times.faster_than(shell)
In addition to being fast, it is far more accurate than the current
practice of casing a regexp on file extensions.
DIAGNOSTICS ContentType raises "ArgumentError: invalid file" for all errors relating to the file it's working on.
ContentType raises "RuntimeError: open", "RuntimeError: load" and
"RuntimeError: file" for libmagic errors.
Any file that cannot be identified is simply said to be "data".
AVAILABILITY http://github.com/dsturnbull/content_type