Ruby argument forwarding

Ruby supports argument forwarding using the ellipsis operator ... called “all arguments splat” (introduced in version 2.7)

# test.rb

def a(...)
  b(...)
end

def b(first:)
  puts first
  yield
end

a(first: "first") do
  puts "from a block"
end
$ ruby test.rb
first
from a block