module Avski::Common::Utils::Hash

Utility methods for Hash manipulation

Public Class Methods

except(hash, key) click to toggle source

Removes a key from the hash and return the modified hash

@param [Hash] hash @param [Symbol] key @return [Hash] The given hash without the removed key

# File lib/avski/common/utils.rb, line 43
def self.except(hash, key)
  hash.delete(key)
end
select(hash, keys) click to toggle source

Return a new hash only with the specified keys

@param [Hash] hash @param [Array] keys @return [Hash]

# File lib/avski/common/utils.rb, line 52
def self.select(hash, keys)
  hash.select { |k, v| keys.include?(k) }
end
symbolize_keys(hash) click to toggle source

Convert Hash string keys to symbol keys

@param [Hash] hash @return [Hash] The resulting hash with symbolized keys

# 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) click to toggle source

BANG! Convert Hash string keys to symbol keys

@param [Hash] hash @return [Hash] The resulting hash with symbolized keys

# 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