Class: File

Inherits:
Object
  • Object
show all
Defined in:
lib/mimetype_fu.rb

Class Method Summary collapse

Class Method Details

.extensionsObject



29
30
31
# File 'lib/mimetype_fu.rb', line 29

def self.extensions
  EXTENSIONS
end

.mime_type?(file) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mimetype_fu.rb', line 6

def self.mime_type?(file)
 case file
 when File, Tempfile
   unless RUBY_PLATFORM.include? 'mswin32'
     mime = `file --mime -br "#{file.path}"`.strip
   else
     mime = EXTENSIONS[File.extname(file.path).gsub('.','').downcase.to_sym]
   end
 when String
   mime = EXTENSIONS[(file[file.rindex('.')+1, file.size]).downcase.to_sym] unless file.rindex('.').nil?
 when StringIO
   temp = File.open(Dir.tmpdir + '/upload_file.' + Process.pid.to_s, "wb")
   temp << file.string
   temp.close
   mime = `file --mime -br "#{temp.path}"`
   mime = mime.gsub(/^.*: */,"")
   mime = mime.gsub(/;.*$/,"")
   mime = mime.gsub(/,.*$/,"")
   File.delete(temp.path)
 end
 return mime || 'unknown/unknown'
end