# File lib/rack/utils.rb, line 44 def parse_query(qs, d = nil) params = {} max_key_space = Utils.key_space_limit bytes = 0 (qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p| k, v = p.split('=', 2).map { |x| unescape(x) } if k bytes += k.size if bytes > max_key_space raise RangeError, "exceeded available parameter key space" end end if cur = params[k] if cur.class == Array params[k] << v else params[k] = [cur, v] end else params[k] = v end end