From 5d8faa683e230e6af54ac7616f98f3ae088e7682 Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Mon, 26 Nov 2012 23:49:14 +0100 Subject: Accept symbols as #send_data :disposition value --- actionpack/CHANGELOG.md | 2 ++ actionpack/lib/action_controller/metal/data_streaming.rb | 1 + actionpack/test/controller/send_file_test.rb | 12 ++++++++++++ 3 files changed, 15 insertions(+) diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 64cd03859d..a8ac9081ec 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,7 @@ ## Rails 4.0.0 (unreleased) ## +* Accept symbols as #send_data :disposition value *Elia Schito* + * Add i18n scope to distance_of_time_in_words. *Steve Klabnik* * `assert_template`: diff --git a/actionpack/lib/action_controller/metal/data_streaming.rb b/actionpack/lib/action_controller/metal/data_streaming.rb index 334943818c..75c4d3ef99 100644 --- a/actionpack/lib/action_controller/metal/data_streaming.rb +++ b/actionpack/lib/action_controller/metal/data_streaming.rb @@ -150,6 +150,7 @@ module ActionController #:nodoc: disposition = options.fetch(:disposition, DEFAULT_SEND_FILE_DISPOSITION) unless disposition.nil? + disposition = disposition.to_s disposition += %(; filename="#{options[:filename]}") if options[:filename] headers['Content-Disposition'] = disposition end diff --git a/actionpack/test/controller/send_file_test.rb b/actionpack/test/controller/send_file_test.rb index 8bf3096888..5e9053da5b 100644 --- a/actionpack/test/controller/send_file_test.rb +++ b/actionpack/test/controller/send_file_test.rb @@ -114,6 +114,18 @@ class SendFileTest < ActionController::TestCase assert_equal 'private', h['Cache-Control'] end + def test_send_file_headers_with_disposition_as_a_symbol + options = { + :type => Mime::PNG, + :disposition => :disposition, + :filename => 'filename' + } + + @controller.headers = {} + @controller.send(:send_file_headers!, options) + assert_equal 'disposition; filename="filename"', @controller.headers['Content-Disposition'] + end + def test_send_file_headers_with_mime_lookup_with_symbol options = { :type => :png -- cgit v1.2.3