functions/splat_variadic_coverage.rb
tests/_examples/functions/splat_variadic_coverage.rb in the metorex repository.
# Method with variadic + fixed params
class Logger
def log(level, *messages)
messages.each do |m|
puts(level + ": " + m)
end
end
end
l = Logger.new
l.log("INFO", "start", "done")
# Standalone function with variadic
def join_all(sep, *parts)
result = ""
parts.each do |p|
if result.length > 0
result = result + sep
end
result = result + p.to_s
end
puts(result)
end
join_all("-", "a", "b", "c")
# Splat expansion in call
def add3(a, b, c)
a + b + c
end
args = [10, 20, 30]
puts(add3(*args))
# Empty variadic
def count_args(*args)
puts(args.length)
end
count_args()
count_args(1, 2, 3)
Output:
INFO: start
INFO: done
a-b-c
60
0
3