Class: Payable::Middleware::SymbolizeKeys

Inherits:
FaradayMiddleware::ParseJson
  • Object
show all
Defined in:
lib/payable/middleware.rb

Class Method Summary collapse

Class Method Details

.symbolize_keys(hash) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/payable/middleware.rb', line 12

def self.symbolize_keys(hash)
  hash.inject({}) do |result, (key, value)|
    new_key = case key
    when String then key.to_sym
    else key
    end

    new_value = case value
    when Hash then symbolize_keys(value)
    when Array then value.map{|v| symbolize_keys(v) }
    else value
    end

    result[new_key] = new_value

    result
  end
end