8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/bitrix24_cloud_api/hash_conversions.rb', line 8
def self.normalize_param(key, value)
param = ''
stack = []
if value.respond_to?(:to_ary)
param << if value.empty?
"#{key}[]=&"
else
value.to_ary.map.with_index { |element, index| normalize_param("#{key}[#{index}]", element) }.join
end
elsif value.respond_to?(:to_hash)
stack << [key, value.to_hash]
else
param << "#{key}=#{ERB::Util.url_encode(value.to_s)}&"
end
stack.each do |parent, hash|
hash.each do |k, v|
if v.respond_to?(:to_hash)
stack << ["#{parent}[#{k}]", v.to_hash]
else
param << normalize_param("#{parent}[#{k}]", v)
end
end
end
param
end
|