I love that we worked on this @MadisonRuby for #OSL
…ired we should only be able to find the default_query_parser in one place, Utils. Also the keyspace size should be a require parameter
This allows you to subclass the query parser to change the behavior. The main reason behind this is to allow changing the hash used to store params, so that indifferent access to params can be done efficiently without monkey patching. This adds Request#query_parser which is hard coded to use the default query parser (QueryParser::Default). However, subclasses of Request can override this method to use an instance of a subclass of QueryParser for custom behavior. For backwards compatibility, Utils still defines the same methods as before, but now they delegate to the default query parser. The multipart code should use the same params class used by the query parser for the request, so the relevant APIs have been changed to support passing in the params to use as an argument.