aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2012-03-05 15:10:23 -0500
committerSteve Klabnik <steve@steveklabnik.com>2012-03-05 15:10:23 -0500
commit8c4b3a4dea79e949da583b379714a2cc4bf92ab4 (patch)
tree8dfac615db599caf04c6463073c99d609893555e /actionpack/lib/action_dispatch/http
parent64d8d24495bfdeeccbe1908e398c2c09e2b8c0fe (diff)
downloadrails-8c4b3a4dea79e949da583b379714a2cc4bf92ab4.tar.gz
rails-8c4b3a4dea79e949da583b379714a2cc4bf92ab4.tar.bz2
rails-8c4b3a4dea79e949da583b379714a2cc4bf92ab4.zip
Added parsing of arbitrary media type parameters.
Based on #4918. Related to #4127.
Diffstat (limited to 'actionpack/lib/action_dispatch/http')
-rw-r--r--actionpack/lib/action_dispatch/http/mime_type.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/http/mime_type.rb b/actionpack/lib/action_dispatch/http/mime_type.rb
index 2152351703..e039eb1288 100644
--- a/actionpack/lib/action_dispatch/http/mime_type.rb
+++ b/actionpack/lib/action_dispatch/http/mime_type.rb
@@ -82,7 +82,7 @@ module Mime
class << self
TRAILING_STAR_REGEXP = /(text|application)\/\*/
- Q_SEPARATOR_REGEXP = /;\s*q=/
+ PARAMETER_SEPARATOR_REGEXP = /;\s*\w+="?\w+"?/
def lookup(string)
LOOKUP[string]
@@ -109,7 +109,7 @@ module Mime
def parse(accept_header)
if accept_header !~ /,/
- accept_header = accept_header.split(Q_SEPARATOR_REGEXP).first
+ accept_header = accept_header.split(PARAMETER_SEPARATOR_REGEXP).first
if accept_header =~ TRAILING_STAR_REGEXP
parse_data_with_trailing_star($1)
else
@@ -119,7 +119,7 @@ module Mime
# keep track of creation order to keep the subsequent sort stable
list, index = [], 0
accept_header.split(/,/).each do |header|
- params, q = header.split(Q_SEPARATOR_REGEXP)
+ params, q = header.split(PARAMETER_SEPARATOR_REGEXP)
if params.present?
params.strip!