module ThreeScale::Client::RackQuery
Public Class Methods
encode(hash)
click to toggle source
# File lib/3scale/client/rack_query.rb, line 8 def encode(hash) hash.flat_map do |hk, hv| encode_value(CGI.escape(hk.to_s), hv) end.join('&'.freeze) end
Private Class Methods
encode_array(rack_param, val)
click to toggle source
# File lib/3scale/client/rack_query.rb, line 26 def encode_array(rack_param, val) rack_param = rack_param + '[]' val.flat_map do |v| encode_value(rack_param, v) end end
encode_hash(rack_param, val)
click to toggle source
# File lib/3scale/client/rack_query.rb, line 33 def encode_hash(rack_param, val) val.flat_map do |k, v| encode_value(rack_param + "[#{CGI.escape(k.to_s)}]", v) end end
encode_value(rack_param, val)
click to toggle source
# File lib/3scale/client/rack_query.rb, line 16 def encode_value(rack_param, val) if val.is_a? Array encode_array(rack_param, val) elsif val.is_a? Hash encode_hash(rack_param, val) else "#{rack_param}=#{CGI.escape(val.to_s)}" end end