Module: Avski::Common::Utils::Hash

Defined in:
lib/avski/common/utils.rb

Overview

Utility methods for Hash manipulation

Class Method Summary collapse

Class Method Details

.except(hash, key) ⇒ Hash

Removes a key from the hash and return the modified hash

Parameters:

  • hash (Hash)
  • key (Symbol)

Returns:

  • (Hash)

    The given hash without the removed key



43
44
45
# File 'lib/avski/common/utils.rb', line 43

def self.except(hash, key)
  hash.delete(key)
end

.select(hash, keys) ⇒ Hash

Return a new hash only with the specified keys

Parameters:

  • hash (Hash)
  • keys (Array)

Returns:



52
53
54
# File 'lib/avski/common/utils.rb', line 52

def self.select(hash, keys)
  hash.select { |k, v| keys.include?(k) }
end

.symbolize_keys(hash) ⇒ Hash

Convert Hash string keys to symbol keys

Parameters:

Returns:

  • (Hash)

    The resulting hash with symbolized keys



17
18
19
20
21
22
23
# File 'lib/avski/common/utils.rb', line 17

def self.symbolize_keys(hash)
  hash.inject({}){ |memo, (k, v)|
    memo[k.to_sym] = v
    memo[k.to_sym] = symbolize_keys v if v.class.eql? ::Hash
    memo
  }
end

.symbolize_keys!(hash) ⇒ Hash

BANG! Convert Hash string keys to symbol keys

Parameters:

Returns:

  • (Hash)

    The resulting hash with symbolized keys



29
30
31
32
33
34
35
36
# File 'lib/avski/common/utils.rb', line 29

def self.symbolize_keys!(hash)
  new_hash = hash.inject({}){ |memo, (k, v)|
    memo[k.to_sym] = v
    memo[k.to_sym] = symbolize_keys v if v.class.eql? ::Hash
    memo
  }
  hash.replace new_hash
end