Provide interface for accessing underlying IO object

In some cases users may need to work with/manipulate more of the
Tempfile api than provided by Upload. Allow users to get at the
underlying io via the common to_io method of IO/IO-like objects
This commit is contained in:
Tim Linquist 2014-04-15 11:05:08 -07:00
parent 43f525031a
commit e601728dce
2 changed files with 11 additions and 0 deletions

@ -31,6 +31,11 @@ def initialize(hash) # :nodoc:
@headers = hash[:head]
end
# Shortcut for working directly with +tempfile+
def to_io
@tempfile
end
# Shortcut for +tempfile.read+.
def read(length=nil, buffer=nil)
@tempfile.read(length, buffer)

@ -33,6 +33,12 @@ def test_tempfile
assert_equal 'foo', uf.tempfile
end
def test_delegates_to_io_to_tempfile
tf = Object.new
uf = Http::UploadedFile.new(:tempfile => tf)
assert_equal tf, uf.to_io
end
def test_delegates_path_to_tempfile
tf = Class.new { def path; 'thunderhorse' end }
uf = Http::UploadedFile.new(:tempfile => tf.new)