From 41c82e66c1abb2abbf5081c1e18b6070a6bbbd01 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Thu, 27 Dec 2007 11:17:53 +0000 Subject: Ruby 1.9 compat: file uploads. References #1689 [Frederick Cheung] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8492 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/request.rb | 4 ++-- actionpack/test/controller/dispatcher_test.rb | 2 +- actionpack/test/controller/request_test.rb | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/actionpack/lib/action_controller/request.rb b/actionpack/lib/action_controller/request.rb index 19948da9c2..c48426d377 100755 --- a/actionpack/lib/action_controller/request.rb +++ b/actionpack/lib/action_controller/request.rb @@ -473,7 +473,7 @@ module ActionController when Array value.map { |v| get_typed_value(v) } else - if value.is_a?(UploadedFile) + if value.respond_to? :original_filename # Uploaded file if value.original_filename value @@ -498,7 +498,7 @@ module ActionController def read_multipart(body, boundary, content_length, env) params = Hash.new([]) boundary = "--" + boundary - quoted_boundary = Regexp.quote(boundary, "n") + quoted_boundary = Regexp.quote(boundary) buf = "" bufsize = 10 * 1024 boundary_end="" diff --git a/actionpack/test/controller/dispatcher_test.rb b/actionpack/test/controller/dispatcher_test.rb index ec937ebfd2..cdaf2bdae5 100644 --- a/actionpack/test/controller/dispatcher_test.rb +++ b/actionpack/test/controller/dispatcher_test.rb @@ -16,7 +16,7 @@ class DispatcherTest < Test::Unit::TestCase end def teardown - ENV['REQUEST_METHOD'] = nil + ENV.delete 'REQUEST_METHOD' end def test_clears_dependencies_after_dispatch_if_in_loading_mode diff --git a/actionpack/test/controller/request_test.rb b/actionpack/test/controller/request_test.rb index a81fa4d866..67eb58a75a 100644 --- a/actionpack/test/controller/request_test.rb +++ b/actionpack/test/controller/request_test.rb @@ -731,7 +731,11 @@ class MultipartRequestParameterParsingTest < Test::Unit::TestCase assert_equal 'bar', params['foo'] file = params['file'] - assert_kind_of Tempfile, file + if RUBY_VERSION > '1.9' + assert_kind_of File, file + else + assert_kind_of Tempfile, file + end assert_equal 'file.txt', file.original_filename assert_equal "text/plain", file.content_type assert ('a' * 20480) == file.read -- cgit v1.2.3