Module: Hyperdrive::Utils

Defined in:
lib/hyperdrive/utils.rb

Class Method Summary collapse

Class Method Details

.enforce_charset!(charset, params) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/hyperdrive/utils.rb', line 27

def self.enforce_charset!(charset, params)
  encoding = find_encoding(charset)
  raise Hyperdrive::Errors::NotAcceptable.new(charset.value) unless encoding.is_a? Encoding
  params.each_value do |value|
    value.encode!(encoding) if value.is_a? String
  end
end

.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