-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
43 lines (34 loc) · 1.46 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
| ____,____, _, _,____,____,_, _,____,
| (-/ (-/ \(-|\ |(-| (-|_,(-|\ |(-|
| _\__,_\__/,_| \|,_|, _|__,_| \|,_|,
| ( ( ( ( ( ( (
| ____,_ _,____,____,
| (-| (-\_/(-|__|-|_,
| _|, _|, _| _|__,
| ( ( ( (
|
| 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