aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-09-09 08:59:07 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-09-09 08:59:07 +0000
commit0cd7e6c1e02f9fab6939963a42b95fe2245fac19 (patch)
tree8dbf16861f28dfac71c4d9057f49572c43f48573 /railties/lib
parent0faca07056e2dd6284d79522614cb991a680d5d0 (diff)
downloadrails-0cd7e6c1e02f9fab6939963a42b95fe2245fac19.tar.gz
rails-0cd7e6c1e02f9fab6939963a42b95fe2245fac19.tar.bz2
rails-0cd7e6c1e02f9fab6939963a42b95fe2245fac19.zip
Added -c/--charset option to WEBrick controller, so you can specify a default charset (which without changes is UTF-8) #2084 [wejn@box.cz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2173 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/webrick_server.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/railties/lib/webrick_server.rb b/railties/lib/webrick_server.rb
index ba0541e7c6..4a73872ba3 100644
--- a/railties/lib/webrick_server.rb
+++ b/railties/lib/webrick_server.rb
@@ -109,6 +109,8 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet
)
header, body = extract_header_and_body(data)
+
+ set_charset(header)
assign_status(res, header)
res.cookies.concat(header.delete('set-cookie'))
header.each { |key, val| res[key] = val.join(", ") }
@@ -138,6 +140,14 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet
return header, body
end
+
+ def set_charset(header)
+ ct = header["content-type"]
+ if ct.any? { |x| x =~ /^text\// } && ! ct.any? { |x| x =~ /charset=/ }
+ ch = @server_options[:charset] || "UTF-8"
+ ct.find { |x| x =~ /^text\// } << ("; charset=" + ch)
+ end
+ end
def assign_status(res, header)
if /^(\d+)/ =~ header['status'][0]