8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/hash-to-uri-conversion.rb', line 8
def normalize_param(key, value)
param = ''
stack = []
if value.is_a?(Array)
param << value.each_with_index.map { |element, i| normalize_param("#{key}[#{i}]", element) }.join
elsif value.is_a?(Hash)
stack << [key, value]
else
param << "#{key}=#{URI.encode(value.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}&"
end
stack.each do |parent, hash|
hash.each do |k, v|
if v.is_a?(Hash)
stack << ["#{parent}[#{k}]", v]
else
param << normalize_param("#{parent}[#{k}]", v)
end
end
end
param
end
|