Оператор splat плохо документирован в основной документации Ruby начиная с Ruby 2.4. Тем не менее, это ключевая особенность языка, а исходный код оператора splat можно найти в vm_eval.c
в rb_yield_splat(VALUE values)
.
модульный тест для rb_yield_splat
проясняет, что происходит:
it "yields with passed array's contents" do
ret = nil
@s.rb_yield_splat([1, 2]) { |x, y| ret = x + y }
ret.should == 3
end