summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-06-09 14:03:20 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-06-09 14:03:20 -0700
commitd608801800cb94606ccf547c3feec2f135fc3ce7 (patch)
tree7d83d9c3a6abcab876052ec6c953d82252af1c19
parent5afe6b51a1bee82c1eeca98231cde9d0ba0e2469 (diff)
downloadrack-d608801800cb94606ccf547c3feec2f135fc3ce7.tar.gz
extract a factory method for building the params object
-rw-r--r--lib/rack/query_parser.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/rack/query_parser.rb b/lib/rack/query_parser.rb
index 184c2abd..1140f579 100644
--- a/lib/rack/query_parser.rb
+++ b/lib/rack/query_parser.rb
@@ -26,7 +26,7 @@ module Rack
def parse_query(qs, d = nil, &unescaper)
unescaper ||= method(:unescape)
- params = params_class.new
+ params = make_params
(qs || '').split(d ? (COMMON_SEP[d] || /[#{d}] */n) : DEFAULT_SEP).each do |p|
next if p.empty?
@@ -53,7 +53,7 @@ module Rack
# case.
def parse_nested_query(qs, d = nil)
return {} if qs.nil? || qs.empty?
- params = params_class.new
+ params = make_params
(qs || '').split(d ? (COMMON_SEP[d] || /[#{d}] */n) : DEFAULT_SEP).each do |p|
k, v = p.split('='.freeze, 2).map! { |s| unescape(s) }
@@ -102,6 +102,10 @@ module Rack
return params
end
+ def make_params
+ @params_class.new
+ end
+
def params_hash_type?(obj)
obj.kind_of?(params_class) || obj.kind_of?(Hash)
end