module Rack::Test::Utils
def normalize_multipart_params(params, first=false)
def normalize_multipart_params(params, first=false) flattened_params = {} params.each do |key, value| k = first ? key.to_s : "[#{key}]" case value when Array value.map do |v| if v.is_a?(Hash) nested_params = {} normalize_multipart_params(v).each do |subkey, subvalue| nested_params[subkey] = subvalue end (flattened_params["#{k}[]"] ||= []) << nested_params else flattened_params["#{k}[]"] = value end end when Hash normalize_multipart_params(value).each do |subkey, subvalue| flattened_params[k + subkey] = subvalue end else flattened_params[k] = value end end flattened_params end