| | __,__, _, _,__,_,, _,__, | (-/ (-/ (-|\ |(-| (-|_,(-|\ |(-| | _,_/,_| |,_|, _|_,| |,_|, | ( ( ( ( ( ( ( | _, _,__,__, | (-| (-_/(-|__|-|_, | _|, _|, _| _|__, | ( ( ( ( | | 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