Ruby URL query string encoder and parser
Ruby
require 'uri'
def build_query(params)
URI.encode_www_form(params.flat_map do |key, value|
values = value.is_a?(Array) ? value : [value]
values.map { |item| [key.to_s, item.to_s] }
end)
end
def parse_query(query)
URI.decode_www_form(query.to_s).each_with_object(Hash.new { |hash, key| hash[key] = [] }) do |(key, value), result|
result[key] << value
end
end