Sha256: 04d28c6e6155cb3bc6f399322dafea409603002c8fe0162a394169a5b7117015

Contents?: true

Size: 869 Bytes

Versions: 3

Compression:

Stored size: 869 Bytes

Contents

require 'tempfile'
require 'extensions_const'

class File

  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

  def self.extensions
    EXTENSIONS
  end

end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
futuresinc-mimetype-fu-0.1.1 lib/mimetype_fu.rb
mimetype-fu-0.1.2 lib/mimetype_fu.rb
mimetype-fu-0.1.1 lib/mimetype_fu.rb