module CodeCode::Common::Utils::Hash

Utility methods for Hash manipulation

Public Instance 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/codecode/common/utils.rb, line 80
def except(hash, key)
  hash.delete(key)
end
recursive_key_symbolizer(object) click to toggle source
# File lib/codecode/common/utils.rb, line 67
def recursive_key_symbolizer(object)
  if object.class.eql? ::Array
    symbolize_keys_of_hashs object
  elsif object.class.eql? ::Hash
    symbolize_keys object
  end
end
recursive_key_symbolizer!(object) click to toggle source
# File lib/codecode/common/utils.rb, line 59
def recursive_key_symbolizer!(object)
  if object.class.eql? ::Array
    symbolize_keys_of_hashs! object
  elsif object.class.eql? ::Hash
    symbolize_keys! object
  end
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/codecode/common/utils.rb, line 89
def 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/codecode/common/utils.rb, line 16
def symbolize_keys(hash)
  hash.inject({}){ |memo, (k, v)|
    memo[k.to_sym] = v
    if v.class.eql? ::Hash
      memo[k.to_sym] = symbolize_keys v
    elsif v.class.eql? ::Array
      memo[k.to_sym] = symbolize_keys_of_hashs v
    end
    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/codecode/common/utils.rb, line 32
def symbolize_keys!(hash)
  new_hash = hash.inject({}){ |memo, (k, v)|
    memo[k.to_sym] = v
    if v.class.eql? ::Hash
      memo[k.to_sym] = symbolize_keys! v
    elsif v.class.eql? ::Array
      memo[k.to_sym] = symbolize_keys_of_hashs! v
    end
    memo
  }
  hash.replace new_hash
end
symbolize_keys_of_hashs(array_of_hashs) click to toggle source

Convert Hash Array with string keys to symbol keys @param [Object] array_of_hashs Array of String Hash @return [Object] Array of Symbol Hash

# File lib/codecode/common/utils.rb, line 48
def symbolize_keys_of_hashs(array_of_hashs)
  array_of_hashs.collect{|hash| symbolize_keys(hash)}
end
symbolize_keys_of_hashs!(array_of_hashs) click to toggle source

BANG! Convert Hash Array with string keys to symbol keys @param [Object] array_of_hashs Array of String Hash @return [Object] Array of Symbol Hash

# File lib/codecode/common/utils.rb, line 55
def symbolize_keys_of_hashs!(array_of_hashs)
  array_of_hashs.collect!{|hash| symbolize_keys(hash)}
end