Method: Hash#transform_keys

Defined in:
lib/active_support/core_ext/hash/keys.rb

#transform_keysObject

Returns a new hash with all keys converted using the block operation.

hash = { name: 'Rob', age: '28' }

hash.transform_keys { |key| key.to_s.upcase } # => {"NAME"=>"Rob", "AGE"=>"28"}

If you do not provide a block, it will return an Enumerator for chaining with other methods:

hash.transform_keys.with_index { |k, i| [k, i].join } # => {"name0"=>"Rob", "age1"=>"28"}


12
13
14
15
16
17
18
19
# File 'lib/active_support/core_ext/hash/keys.rb', line 12

def transform_keys
  return enum_for(:transform_keys) { size } unless block_given?
  result = {}
  each_key do |key|
    result[yield(key)] = self[key]
  end
  result
end