We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.
Ruby 2.4 added Hash#transform_values method to transform values of the hash.
In Ruby 2.5, a similar method Hash#transform_keys is added for transforming keys of the hash.
1>> h = { name: "John", email: "john@example.com" }
2=> {:name=>"John", :email=>"john@example.com"}
3
4>> h.transform_keys { |k| k.to_s }
5=> {"name"=>"John", "email"=>"john@example.com"}
The bang sibling of this method,
Hash#transform_keys!
is also added
which changes the hash in place.
These two methods are already present in Active Support from Rails and are natively supported in Ruby now.
Rails master is already supporting using the native methods if supported by the Ruby version.