functions/chained_defaults.rb
tests/_examples/functions/chained_defaults.rb in the metorex repository.
# One default may set several parameters at once, and a later parameter reads
# what an earlier one was given.
def shared(a = b = c = {})
[a, b, c]
end
p shared
p shared 1
def widened(first = 2, second = first * 3)
[first, second]
end
p widened
p widened 5
Output:
[{}, {}, {}]
[1, nil, nil]
[2, 6]
[5, 15]