Module: Paymill::Request::Helpers

Included in:
Connection
Defined in:
lib/paymill/request/helpers.rb

Instance Method Summary collapse

Instance Method Details

#flatten_hash_keys(old_hash, new_hash = {}, keys = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/paymill/request/helpers.rb', line 4

def flatten_hash_keys(old_hash, new_hash={}, keys=nil)
  old_hash.each do |key, value|
    key = key.to_s
    if value.is_a?(Hash)
      all_keys_formatted = keys + "[#{key}]"
      flatten_hash_keys(value, new_hash, all_keys_formatted)
    else
      new_hash[key] = value
    end
  end
  new_hash
end

#normalize_params(params, key = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/paymill/request/helpers.rb', line 17

def normalize_params(params, key=nil)
  params = flatten_hash_keys(params) if params.is_a?(Hash)
  result = {}
  params.each do |key, value|
    case value
    when Hash
      result[key.to_s] = normalize_params(value)
    when Array
      value.each_with_index do |item_value, index|
        result["#{key.to_s}[#{index}]"] = item_value.to_s
      end
    else
      result[key.to_s] = value.to_s
    end
  end
  result
end