module Utilise::Augment::Hash

Extends a hash to modify keys

Public Instance Methods

camel_keys() click to toggle source

Transforms all keys to camel case

# File lib/utilise/augment/hash.rb, line 13
def camel_keys
  utilise_deep_transform_keys(self, &:camel)
end
snake_keys() click to toggle source

Transforms all keys to snake case

# File lib/utilise/augment/hash.rb, line 8
def snake_keys
  utilise_deep_transform_keys(self, &:snake)
end
space_keys() click to toggle source

Transforms all keys to space case

# File lib/utilise/augment/hash.rb, line 18
def space_keys
  utilise_deep_transform_keys(self, &:space)
end
string_keys() click to toggle source

Transforms all keys to a string

# File lib/utilise/augment/hash.rb, line 23
def string_keys
  utilise_deep_transform_keys(self, &:to_s)
end
symbol_keys() click to toggle source

Transforms all keys to a symbol

# File lib/utilise/augment/hash.rb, line 28
def symbol_keys
  utilise_deep_transform_keys(self, &:to_sym)
end

Private Instance Methods

utilise_deep_transform_keys(object) { |key| ... } click to toggle source

Deep transform keys in object An awesome piece of code from rails apidock.com/rails/Hash/_deep_transform_keys_in_object

# File lib/utilise/augment/hash.rb, line 37
def utilise_deep_transform_keys(object, &block)
  case object
  when Hash
    object.each_with_object({}) do |(key, value), result|
      result[yield(key)] = utilise_deep_transform_keys(value, &block)
    end
  when Array
    object.map { |e| utilise_deep_transform_keys(e, &block) }
  else
    object
  end
end