The splat operator gathers extra positional arguments into an array.

Splat Arguments

splat_arguments.rb
def total(*numbers)
  numbers.sum
end

extra = 
values = [2, 3, extra]
result = total(*values)

puts "values=#{values.join(",")}"
puts "count=#{values.length}"
puts "total=#{result}"
def total(*numbers)
  numbers.sum
end

extra = 
values = [2, 3, extra]
result = total(*values)

puts "values=#{values.join(",")}"
puts "count=#{values.length}"
puts "total=#{result}"
def total(*numbers)
  numbers.sum
end

extra = 
values = [2, 3, extra]
result = total(*values)

puts "values=#{values.join(",")}"
puts "count=#{values.length}"
puts "total=#{result}"
splat argument `*args` captures any number of positional values passed to a method.