diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-09-09 08:59:07 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-09-09 08:59:07 +0000 |
commit | 0cd7e6c1e02f9fab6939963a42b95fe2245fac19 (patch) | |
tree | 8dbf16861f28dfac71c4d9057f49572c43f48573 /railties/lib | |
parent | 0faca07056e2dd6284d79522614cb991a680d5d0 (diff) | |
download | rails-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.rb | 10 |
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] |