Ruby 2.5 includes a bunch of new
Hash
methods:Hash#slice
Hash#transform_keys
Hash#transform_keys!
The first two do exactly what you'd expect them - and the same ActiveSupport's methods with the same names do. In case of key conflict
Hash#transform_keys
will quietly overwrite keys, which is somewhat questionable behaviour, but it's not like there's obvious better way.
Unfortunately
Hash#transform_keys!
took some shortcuts, resulting in rather questionable behaviour. I submitted it as a bug report, and hope they fix it soon, but to be honest track record of my Open Source bug submissions is rather poor.
I'm really surprised
Hash#compact
wasn't included.
If you want to use these new methods in older Ruby versions, or if you want to use methods from future rubies like
I did not include
Hash#compact
, Hash#select_values
, Hash#select_keys
etc., I updated hash-polyfill
gem too.I did not include
Hash#transform_keys!
in the gem as its unclear if it will have corrected or current questionable behaviour long term.
No comments:
Post a Comment