mime-typer 0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mime-typer.rb +67 -0
- data/mime-typer.gemspec +3 -3
- data/test.png +0 -0
- metadata +3 -3
- data/dog.jpg +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2854587c48b7973c8f88bfa17d732ab1113fac1c
|
4
|
+
data.tar.gz: 8072db2297467952ab51ee30989f12e69b862cf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9694fb0a7685436fd57d83dce29710f100a947daa4d76e07cb9c83f32fe96749d6a69ba1cb286b73d1275f66c28df42e4a80e26e14ccd35baa6ed362523dcf0b
|
7
|
+
data.tar.gz: 3ac3d8ff70d6a6e94b74c3ea3edfb70ac3acd881ae6c9994910277549a48aa744eed23a790015d76d1786d7783090c4ae1b0d442b64fd4f3910f9b32c625786d
|
data/lib/mime-typer.rb
CHANGED
@@ -1,8 +1,75 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
class Net::HTTPResponse
|
5
|
+
attr_reader :socket
|
6
|
+
end
|
7
|
+
|
1
8
|
module MIME
|
9
|
+
# Public: A simple class to detect mime type of a file, using libmagic
|
10
|
+
# You can detect both local and remote file types
|
11
|
+
#
|
12
|
+
# Examples
|
13
|
+
#
|
14
|
+
# MIME::Typer.detect('/my/awesome/image/path.jpg')
|
15
|
+
# # => 'image/jpeg'
|
2
16
|
class Typer
|
17
|
+
# Public: Detects the MIME type of a file, given a path or a file
|
18
|
+
#
|
19
|
+
# file - The String path or the File to be detected
|
20
|
+
#
|
21
|
+
# Examples
|
22
|
+
#
|
23
|
+
# detect('/my/awesome/image/path.jpg')
|
24
|
+
# # => 'image/jpeg'
|
25
|
+
#
|
26
|
+
# Returns a String containing the MIME Type.
|
3
27
|
def self.detect(file)
|
4
28
|
path = file.is_a?(File) ? file.path : file
|
5
29
|
`file --mime-type #{path} | awk '{ print $(NF) }'`.strip
|
6
30
|
end
|
31
|
+
|
32
|
+
# Public: Detects the MIME type of a remote file, given an url
|
33
|
+
#
|
34
|
+
# uri - The String uri of the file
|
35
|
+
#
|
36
|
+
# Examples
|
37
|
+
#
|
38
|
+
# remote('http://my.awesome.site.com/my_image.jpg')
|
39
|
+
# # => 'image/jpeg'
|
40
|
+
#
|
41
|
+
# Returns a String containing the MIME Type.
|
42
|
+
def self.remote(uri)
|
43
|
+
temp = Tempfile.new('mime-typer')
|
44
|
+
temp.binmode
|
45
|
+
temp.write(load_remote(uri))
|
46
|
+
temp.close
|
47
|
+
detect temp.path
|
48
|
+
end
|
49
|
+
|
50
|
+
# Internal: Loads the first 200 bytes of a file
|
51
|
+
#
|
52
|
+
# uri - The String uri of the file
|
53
|
+
# bytes - The Number of bytes to be loaded (default: 200)
|
54
|
+
#
|
55
|
+
# Examples
|
56
|
+
#
|
57
|
+
# remote('http://my.awesome.site.com/my_pdf.jpg')
|
58
|
+
# # => 'PDF 1.4 etc...'
|
59
|
+
#
|
60
|
+
# Returns a binary String containing the first 200 bytes of the file.
|
61
|
+
def self.load_remote(uri, bytes = 200)
|
62
|
+
result = ''
|
63
|
+
uri = URI(uri)
|
64
|
+
Net::HTTP.start(uri.host, uri.port) do |http|
|
65
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
66
|
+
http.request(request) do |response|
|
67
|
+
result = response.socket.read(bytes)
|
68
|
+
http.finish
|
69
|
+
end
|
70
|
+
end rescue nil
|
71
|
+
result
|
72
|
+
end
|
73
|
+
private_class_method :load_remote
|
7
74
|
end
|
8
75
|
end
|
data/mime-typer.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
lib = 'mime-typer'
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'mime-typer'
|
4
|
-
s.version = '0.
|
5
|
-
s.date = '2014-
|
4
|
+
s.version = '0.2'
|
5
|
+
s.date = '2014-08-04'
|
6
6
|
s.summary = 'MIME Typer'
|
7
7
|
s.description = 'A gem to detect mime type of a file, using libmagic.'
|
8
8
|
s.authors = ['Piero Dotti']
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = 'MIT'
|
12
12
|
s.extensions = %w(dipendences/Rakefile)
|
13
13
|
|
14
|
-
s.files = %w(Gemfile LICENSE README.md Rakefile
|
14
|
+
s.files = %w(Gemfile LICENSE README.md Rakefile test.png)
|
15
15
|
s.files << "#{lib}.gemspec"
|
16
16
|
s.files += Dir.glob("lib/**/*.rb")
|
17
17
|
s.files += Dir.glob("test/**/*.rb")
|
data/test.png
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mime-typer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piero Dotti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -50,9 +50,9 @@ files:
|
|
50
50
|
- README.md
|
51
51
|
- Rakefile
|
52
52
|
- dipendences/Rakefile
|
53
|
-
- dog.jpg
|
54
53
|
- lib/mime-typer.rb
|
55
54
|
- mime-typer.gemspec
|
55
|
+
- test.png
|
56
56
|
homepage: https://github.com/ProGM/mime-typer
|
57
57
|
licenses:
|
58
58
|
- MIT
|
data/dog.jpg
DELETED
Binary file
|