class Rack::Test::UploadedFile
Wraps a Tempfile with a content type. Including one or more UploadedFile's in the params causes Rack::Test to build and issue a multipart request.
Example:
post "/photos", "file" => Rack::Test::UploadedFile.new("me.jpg", "image/jpeg")
Attributes
content_type[RW]
The content type of the “uploaded” file
original_filename[R]
The filename, not including the path, of the “uploaded” file
tempfile[R]
The tempfile
Public Class Methods
actually_finalize(file)
click to toggle source
# File lib/rack/test/uploaded_file.rb, line 56 def self.actually_finalize(file) file.close file.unlink end
finalize(file)
click to toggle source
# File lib/rack/test/uploaded_file.rb, line 52 def self.finalize(file) proc { actually_finalize file } end
new(path, content_type = "text/plain", binary = false)
click to toggle source
# File lib/rack/test/uploaded_file.rb, line 23 def initialize(path, content_type = "text/plain", binary = false) raise "#{path} file does not exist" unless ::File.exist?(path) @content_type = content_type @original_filename = ::File.basename(path) @tempfile = Tempfile.new([@original_filename, ::File.extname(path)]) @tempfile.set_encoding(Encoding::BINARY) if @tempfile.respond_to?(:set_encoding) @tempfile.binmode if binary ObjectSpace.define_finalizer(self, self.class.finalize(@tempfile)) FileUtils.copy_file(path, @tempfile.path) end
Public Instance Methods
path()
click to toggle source
# File lib/rack/test/uploaded_file.rb, line 38 def path @tempfile.path end
Also aliased as: local_path