diff options
author | Jon Moss <me@jonathanmoss.me> | 2016-08-29 17:57:40 -0400 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2016-08-29 18:00:45 -0400 |
commit | 92f8b99ff74cee43f56ff336838b3a776e763136 (patch) | |
tree | 77c2bd7709ae70a6caa956247f267fb65b59b734 | |
parent | bed91f842109c715903ebbe3ce9754629b3594fd (diff) | |
download | rails-92f8b99ff74cee43f56ff336838b3a776e763136.tar.gz rails-92f8b99ff74cee43f56ff336838b3a776e763136.tar.bz2 rails-92f8b99ff74cee43f56ff336838b3a776e763136.zip |
Remove default argument, and extract internal convenience method
-rw-r--r-- | actionpack/lib/action_dispatch/http/response.rb | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/http/response.rb b/actionpack/lib/action_dispatch/http/response.rb index c8f0644ef5..e8173e2a99 100644 --- a/actionpack/lib/action_dispatch/http/response.rb +++ b/actionpack/lib/action_dispatch/http/response.rb @@ -226,7 +226,7 @@ module ActionDispatch # :nodoc: 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 @@ module ActionDispatch # :nodoc: # information. def content_type - parse_content_type.mime_type + parsed_content_type_header.mime_type end def sending_file=(v) @@ -255,7 +255,7 @@ module ActionDispatch # :nodoc: # 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 @@ module ActionDispatch # :nodoc: # 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 @@ module ActionDispatch # :nodoc: 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 @@ module ActionDispatch # :nodoc: 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 @@ module ActionDispatch # :nodoc: 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 |