Feature #19002
Updated by inopinatus (Joshua GOODALL) over 2 years ago
I'm renovating some 2.x-era code that relied heavily on autosplat for block kwargs. As we all know, this throws an ArgumentError in Ruby 3:
``` ruby
ary = [
{ foo: 42, bar: 101 },
{ foo: 99, bar: 123 }
]
ary.map { |foo:, bar:| foo+bar } #=> ArgumentError
```
The nicest solution I could find so far is
``` ruby
module Enumerable
def splat
each { |arg| yield **arg }
end
end
``` ruby
and then
`ary.map.splat { |foo:, bar:| foo+bar } #=> [143, 222]`
and I present this as a feature suggestion.