dsturnbull / content_type

Simple ruby extension to use libmagic instead of shelling out for file mime types.
7 stars 1 forks source link
,, , ,,,, ,____, (-/ (-/ (- \ (- (- _,(- \ (- _,_/,_ \ ,_ , _ _, \ ,_ , ( ( ( ( ( ( ( , ,,____, (- (-_/(- __ - _, _ , _ , _ _ __, ( ( ( (
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