module Rack::Test::Utils

def _build_parts(buffer, parameters)

Append each multipart parameter value to the buffer.
def _build_parts(buffer, parameters)
  parameters.map do |name, value|
    if name =~ /\[\]\Z/ && value.is_a?(Array) && value.all? { |v| v.is_a?(Hash) }
      value.each do |hash|
        new_value = {}
        hash.each { |k, v| new_value[name + k] = v }
        _build_parts(buffer, new_value)
      end
    else
      [value].flatten.map do |v|
        if v.respond_to?(:original_filename)
          build_file_part(buffer, name, v)
        else
          build_primitive_part(buffer, name, v)
        end
      end
    end
  end
end