Method: Hash#transform_keys
- Defined in:
- lib/active_support/core_ext/hash/keys.rb
#transform_keys ⇒ Object
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 |