From a52541c06eea52689092fbd45bb54fae690818f6 Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Tue, 19 Oct 2010 23:32:33 +0200 Subject: [PATCH] Small content_type refactoring. * Avoid setting charset twice if parameter is passed as string rather than symbol. * No need to check for empty params hash, there always is :charset. Tests still pass. --- lib/sinatra/base.rb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index 25b58b475d..4eaa3ecb9f 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -130,13 +130,9 @@ def mime_type(type) def content_type(type, params={}) mime_type = mime_type(type) fail "Unknown media type: %p" % type if mime_type.nil? - params[:charset] ||= defined?(Encoding) ? Encoding.default_external.to_s.downcase : 'utf-8' - if params.any? - params = params.collect { |kv| "%s=%s" % kv }.join(', ') - response['Content-Type'] = [mime_type, params].join(";") - else - response['Content-Type'] = mime_type - end + params[:charset] ||= params.delete('charset') || + defined?(Encoding) ? Encoding.default_external.to_s.downcase : 'utf-8' + response['Content-Type'] = "#{mime_type};#{params.map { |kv| kv.join('=') }.join(', ')}" end # Set the Content-Disposition to "attachment" with the specified filename,