diff options
author | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-06-15 11:21:08 -0700 |
---|---|---|
committer | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-06-15 11:21:08 -0700 |
commit | 5a8a550a45c5ca7abc9785ed180d5f46189c9958 (patch) | |
tree | 57e604e8485e34a6d7058c8f243e941d38bca949 /actionpack/lib/action_controller | |
parent | c50b03b754948b676b74c334edfb277fa45c1d14 (diff) | |
download | rails-5a8a550a45c5ca7abc9785ed180d5f46189c9958.tar.gz rails-5a8a550a45c5ca7abc9785ed180d5f46189c9958.tar.bz2 rails-5a8a550a45c5ca7abc9785ed180d5f46189c9958.zip |
Finish making things pass with updated internal content_type semantics
Diffstat (limited to 'actionpack/lib/action_controller')
4 files changed, 9 insertions, 6 deletions
diff --git a/actionpack/lib/action_controller/base/mime_responds.rb b/actionpack/lib/action_controller/base/mime_responds.rb index 3c17dda1a1..5c7218691e 100644 --- a/actionpack/lib/action_controller/base/mime_responds.rb +++ b/actionpack/lib/action_controller/base/mime_responds.rb @@ -125,7 +125,7 @@ module ActionController #:nodoc: end @controller.template.formats = [mime_type.to_sym] - @response.content_type = mime_type.to_s + @response.content_type = mime_type block_given? ? block.call : @controller.send(:render, :action => @controller.action_name) end diff --git a/actionpack/lib/action_controller/base/streaming.rb b/actionpack/lib/action_controller/base/streaming.rb index 73d4bde6c1..5c72fc9ad9 100644 --- a/actionpack/lib/action_controller/base/streaming.rb +++ b/actionpack/lib/action_controller/base/streaming.rb @@ -162,15 +162,16 @@ module ActionController #:nodoc: disposition <<= %(; filename="#{options[:filename]}") if options[:filename] content_type = options[:type] + if content_type.is_a?(Symbol) - raise ArgumentError, "Unknown MIME type #{options[:type]}" unless Mime::EXTENSION_LOOKUP.has_key?(content_type.to_s) - content_type = Mime::Type.lookup_by_extension(content_type.to_s) + raise ArgumentError, "Unknown MIME type #{options[:type]}" unless Mime::EXTENSION_LOOKUP.key?(content_type.to_s) + self.content_type = Mime::Type.lookup_by_extension(content_type.to_s) + else + self.content_type = content_type end - content_type = content_type.to_s.strip # fixes a problem with extra '\r' with some browsers headers.merge!( 'Content-Length' => options[:length], - 'Content-Type' => content_type, 'Content-Disposition' => disposition, 'Content-Transfer-Encoding' => 'binary' ) diff --git a/actionpack/lib/action_controller/new_base/rack_convenience.rb b/actionpack/lib/action_controller/new_base/rack_convenience.rb index 5dfa7d12f3..805157b0e3 100644 --- a/actionpack/lib/action_controller/new_base/rack_convenience.rb +++ b/actionpack/lib/action_controller/new_base/rack_convenience.rb @@ -3,7 +3,7 @@ module ActionController extend ActiveSupport::Concern included do - delegate :headers, :status=, :location=, + delegate :headers, :status=, :location=, :content_type=, :status, :location, :content_type, :to => "@_response" attr_internal :request, :response end diff --git a/actionpack/lib/action_controller/testing/process.rb b/actionpack/lib/action_controller/testing/process.rb index 9647f8ce45..ea5752d4f5 100644 --- a/actionpack/lib/action_controller/testing/process.rb +++ b/actionpack/lib/action_controller/testing/process.rb @@ -56,6 +56,8 @@ module ActionController #:nodoc: @block = nil @length = 0 @body = [] + @charset = nil + @content_type = nil @request = @template = nil end |