Method: Excon::Utils#query_string

Defined in:
lib/excon/utils.rb

#query_string(datum) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/excon/utils.rb', line 35

def query_string(datum)
  str = ''
  case datum[:query]
  when String
    str << '?' << datum[:query]
  when Hash
    str << '?'
    datum[:query].sort_by {|k,_| k.to_s }.each do |key, values|
      if values.nil?
        str << key.to_s << '&'
      else
        [values].flatten.each do |value|
          str << key.to_s << '=' << CGI.escape(value.to_s) << '&'
        end
      end
    end
    str.chop! # remove trailing '&'
  end
  str
end