Module: Hyperdrive::Utils

Defined in:
lib/hyperdrive/utils.rb

Class Method Summary collapse

Class Method Details

.sanitize_keys(keys_to_keep, hash) ⇒ Object



5
6
7
8
9
# File 'lib/hyperdrive/utils.rb', line 5

def self.sanitize_keys(keys_to_keep, hash)
  Hash[hash.select do |key, value|
    keys_to_keep.include? key
  end]
end

.symbolize_keys(hash) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hyperdrive/utils.rb', line 11

def self.symbolize_keys(hash)
  hash.inject({}) do |result, (key, value)|
   result.merge!(Hash[
      case key
      when String then key.to_sym
      else key
      end,
      case value
      when Hash then symbolize_keys(value)
      when Array then value.map! { |v| v.is_a?(Hash) ? symbolize_keys(v) : v } ; value
      else value
      end
    ])
  end
end