Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/hash_ext.rb

Instance Method Summary collapse

Instance Method Details

#to_paramsObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/hash_ext.rb', line 2

def to_params
  params = ''
  stack = []

  each do |k, v|
    if v.is_a?(Hash)
      stack << [k, v]
    else
      params << "#{k}=#{CGI::escape(v)}&"
    end
  end

  stack.each do |parent, hash|
    hash.each do |k, v|
      if v.is_a?(Hash)
        stack << ["#{parent}[#{k}]", v]
      else
        params << "#{parent}[#{k}]=#{CGI::escape(v)}&"
      end
    end
  end

  params.chop!
  "&#{params}"
end