提交 92f8b99f 编写于 作者: J Jon Moss

Remove default argument, and extract internal convenience method

上级 bed91f84
......@@ -226,7 +226,7 @@ def status=(status)
def content_type=(content_type)
return unless content_type
new_header_info = parse_content_type(content_type.to_s)
prev_header_info = parse_content_type(get_header(CONTENT_TYPE))
prev_header_info = parsed_content_type_header
set_content_type new_header_info.mime_type, new_header_info.charset || prev_header_info.charset || self.class.default_charset
end
......@@ -240,7 +240,7 @@ def content_type=(content_type)
# information.
def content_type
parse_content_type.mime_type
parsed_content_type_header.mime_type
end
def sending_file=(v)
......@@ -255,7 +255,7 @@ def sending_file=(v)
# response.charset = 'utf-16' # => 'utf-16'
# response.charset = nil # => 'utf-8'
def charset=(charset)
header_info = parse_content_type
header_info = parsed_content_type_header
if false == charset
set_header CONTENT_TYPE, header_info.mime_type
else
......@@ -267,7 +267,7 @@ def charset=(charset)
# The charset of the response. HTML wants to know the encoding of the
# content you're giving them, so we need to send that along.
def charset
header_info = parse_content_type
header_info = parsed_content_type_header
header_info.charset || self.class.default_charset
end
......@@ -405,7 +405,7 @@ def cookies
ContentTypeHeader = Struct.new :mime_type, :charset
NullContentTypeHeader = ContentTypeHeader.new nil, nil
def parse_content_type(content_type = get_header(CONTENT_TYPE))
def parse_content_type(content_type)
if content_type
type, charset = content_type.split(/;\s*charset=/)
type = nil if type.empty?
......@@ -415,6 +415,12 @@ def parse_content_type(content_type = get_header(CONTENT_TYPE))
end
end
# Small internal convenience method to get the parsed version of the current
# content type header.
def parsed_content_type_header
parse_content_type(get_header(CONTENT_TYPE))
end
def set_content_type(content_type, charset)
type = (content_type || "").dup
type << "; charset=#{charset}" if charset
......@@ -451,7 +457,7 @@ def munge_body_object(body)
def assign_default_content_type_and_charset!
return if content_type
ct = parse_content_type
ct = parsed_content_type_header
set_content_type(ct.mime_type || Mime[:html].to_s,
ct.charset || self.class.default_charset)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册