Method: Merb::Test::MultipartRequestHelper::Post#push_params

Defined in:
lib/merb-core/test/helpers/multipart_request_helper.rb

#push_params(params, prefix = nil) ⇒ Object

Saves the params in an array of multipart params as Param and FileParam objects.

Parameters

params<Hash>

The params to add to the multipart params.

prefix<~to_s>

An optional prefix for the request string keys.



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/merb-core/test/helpers/multipart_request_helper.rb', line 62

def push_params(params, prefix = nil)
  params.sort_by {|k| k.to_s}.each do |key, value|
    param_key = prefix.nil? ? key : "#{prefix}[#{key}]"
    if value.respond_to?(:read)
      @multipart_params << FileParam.new(param_key, value.path, value.read)
    else
      if value.is_a?(Hash) || value.is_a?(Mash)
        value.keys.each do |k|
          push_params(value, param_key)
        end
      else
        @multipart_params << Param.new(param_key, value)
      end
    end
  end
end