Method: Faraday::FlatParamsEncoder.decode
- Defined in:
- lib/faraday/encoders/flat_params_encoder.rb
.decode(query) ⇒ Hash
Decode converts the given URI querystring into a hash.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/faraday/encoders/flat_params_encoder.rb', line 74 def self.decode(query) return nil if query.nil? empty_accumulator = {} split_query = query.split('&').filter_map do |pair| pair.split('=', 2) if pair && !pair.empty? end 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 |