Method: Spider::HTTP.normalize_params

Defined in:
lib/spiderfw/http/http.rb

.normalize_params(parms, name, val = nil) ⇒ Object

Converts a query string snippet to a hash and adds it to existing parameters.

Parameters

parms<Hash>

Parameters to add the normalized parameters to.

name<String>

The key of the parameter to normalize.

val<String>

The value of the parameter.

Returns

Hash

Normalized parameters

– from Merb



214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/spiderfw/http/http.rb', line 214

def self.normalize_params(parms, name, val=nil)
  name =~ %r([\[\]]*([^\[\]]+)\]*)
  key = $1 || ''
  after = $' || ''

  if after == ""
    parms[key] = val
  elsif after == "[]"
    (parms[key] ||= []) << val
  elsif after =~ %r(^\[\])
    parms[key] ||= []
    parms[key] << normalize_params({}, after, val)
  else
    parms[key] ||= {}
    parms[key] = normalize_params(parms[key], after, val)
  end
  parms
end