module Faraday::FlatParamsEncoder
def self.decode(query)
-
(Hash)
- parsed keys and value strings from the querystring.
Parameters:
-
query
(String
) -- query arguments to parse.
def self.decode(query) return nil if query.nil? empty_accumulator = {} split_query = (query.split('&').map do |pair| pair.split('=', 2) if pair && !pair.empty? end).compact split_query.each_with_object(empty_accumulator.dup) do |pair, accu| pair[0] = unescape(pair[0]) pair[1] = true if pair[1].nil? if pair[1].respond_to?(:to_str) pair[1] = unescape(pair[1].to_str.tr('+', ' ')) end if accu[pair[0]].is_a?(Array) accu[pair[0]] << pair[1] elsif accu[pair[0]] accu[pair[0]] = [accu[pair[0]], pair[1]] else accu[pair[0]] = pair[1] end end end