From 2caf4d5a9337591c2728c7db826526febc5b2158 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 17 Sep 2006 16:20:32 +0000 Subject: Added proper getters and setters for content type and charset [DHH] Added utf-8 as the default charset for all renders. You can change this default using ActionController::Base.default_charset=(encoding) [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5129 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/response.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'actionpack/lib/action_controller/response.rb') diff --git a/actionpack/lib/action_controller/response.rb b/actionpack/lib/action_controller/response.rb index 2bec477647..d6795e37a0 100755 --- a/actionpack/lib/action_controller/response.rb +++ b/actionpack/lib/action_controller/response.rb @@ -7,6 +7,24 @@ module ActionController @body, @headers, @session, @assigns = "", DEFAULT_HEADERS.merge("cookie" => []), [], [] end + def content_type=(mime_type) + @headers["Content-Type"] = charset ? "#{mime_type}; charset=#{charset}" : mime_type + end + + def content_type + content_type = String(@headers["Content-Type"]).split(";")[0] + content_type.blank? ? nil : content_type + end + + def charset=(encoding) + @headers["Content-Type"] = "#{content_type || "text/html"}; charset=#{encoding}" + end + + def charset + charset = String(@headers["Content-Type"]).split(";")[1] + charset.blank? ? nil : charset.strip.split("=")[1] + end + def redirect(to_url, permanently = false) @headers["Status"] = "302 Found" unless @headers["Status"] == "301 Moved Permanently" @headers["location"] = to_url -- cgit v1.2.3