Sha256: 94f018f5607d8518dfa5b0a555167255557811991ca71f476c0946b967421db9

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

module Paperclip
  # The Upfile module is a convenience module for adding uploaded-file-type methods
  # to the +File+ class. Useful for testing.
  #   user.avatar = File.new("test/test_avatar.jpg")
  module Upfile
    require 'mime/types'
    
    # Infer the MIME-type of the file from the extension.
    #    def content_type
    #      type = (self.path.match(/\.(\w+)$/)[1] rescue "octet-stream").downcase
    #      case type
    #      when %r"jp(e|g|eg)"            then "image/jpeg"
    #      when %r"tiff?"                 then "image/tiff"
    #      when %r"png", "gif", "bmp"     then "image/#{type}"
    #      when "txt"                     then "text/plain"
    #      when %r"html?"                 then "text/html"
    #      when "js"                      then "application/js"
    #      when "csv", "xml", "css"       then "text/#{type}"
    #      else "application/x-#{type}"
    #      end
    #    end

    def content_type
      MIME::Types.type_for(self.path.strip).to_s
    end

    # Returns the file's normal name.
    def original_filename
      File.basename(self.path)
    end

    # Returns the size of the file.
    def size
      File.size(self)
    end
  end
end

if defined? StringIO
  class StringIO
    attr_accessor :original_filename, :content_type
    def original_filename
      @original_filename ||= "stringio.txt"
    end
    def content_type
      @content_type ||= "text/plain"
    end
  end
end

class File #:nodoc:
  include Paperclip::Upfile
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mwd-paperclip-2.3.1.1b lib/paperclip/upfile.rb
mwd-paperclip-2.3.1.1.mwd.b lib/paperclip/upfile.rb