diff options
author | Jon Leighton <j@jonathanleighton.com> | 2010-10-06 12:11:38 +0100 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2010-10-06 12:11:38 +0100 |
commit | c954d54e2f36bb53ced5e3655adc071dd233797e (patch) | |
tree | d84bf4bf51f65a1c817089c6fe37c3e9f20420d0 /actionpack/lib/action_dispatch/http/upload.rb | |
parent | f2b41914d6be935182d37e0c0d491352ac3de043 (diff) | |
parent | d40ca9cce241a8083756c993d6c99a79e62e050e (diff) | |
download | rails-c954d54e2f36bb53ced5e3655adc071dd233797e.tar.gz rails-c954d54e2f36bb53ced5e3655adc071dd233797e.tar.bz2 rails-c954d54e2f36bb53ced5e3655adc071dd233797e.zip |
Merge branch 'master' into nested_has_many_through
Diffstat (limited to 'actionpack/lib/action_dispatch/http/upload.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/http/upload.rb | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/actionpack/lib/action_dispatch/http/upload.rb b/actionpack/lib/action_dispatch/http/upload.rb index 49465d820e..84e58d7d6a 100644 --- a/actionpack/lib/action_dispatch/http/upload.rb +++ b/actionpack/lib/action_dispatch/http/upload.rb @@ -2,27 +2,28 @@ require 'active_support/core_ext/object/blank' module ActionDispatch module Http - class UploadedFile < Tempfile + class UploadedFile attr_accessor :original_filename, :content_type, :tempfile, :headers def initialize(hash) @original_filename = hash[:filename] @content_type = hash[:type] @headers = hash[:head] + @tempfile = hash[:tempfile] + raise(ArgumentError, ':tempfile is required') unless @tempfile + end - # To the untrained eye, this may appear as insanity. Given the alternatives, - # such as busting the method cache on every request or breaking backwards - # compatibility with is_a?(Tempfile), this solution is the best available - # option. - # - # TODO: Deprecate is_a?(Tempfile) and define a real API for this parameter - tempfile = hash[:tempfile] - tempfile.instance_variables.each do |ivar| - instance_variable_set(ivar, tempfile.instance_variable_get(ivar)) - end + def read(*args) + @tempfile.read(*args) end - alias local_path path + def rewind + @tempfile.rewind + end + + def size + @tempfile.size + end end module Upload |