functions/destructured_params_no_parens.rb

tests/_examples/functions/destructured_params_no_parens.rb in the metorex repository.

def pair_sum((left, right))
  left + right
end
puts pair_sum [3, 4]

def spread((first, second, *middle, last))
  [first, second, middle, last].inspect
end
puts spread [1, 2, 3, 4, 5]

def nested((outer, (inner_one, inner_two)))
  [outer, inner_one, inner_two].inspect
end
puts nested [1, [2, 3]]

def alongside prefix, (left, right), suffix
  [prefix, left, right, suffix].inspect
end
puts alongside 0, [1, 2], 3

def short_group((only_one, missing))
  [only_one, missing].inspect
end
puts short_group [9]

puts method(:pair_sum).arity
puts method(:pair_sum).parameters.inspect

Output:

7
[1, 2, [3, 4], 5]
[1, 2, 3]
[0, 1, 2, 3]
[9, nil]
1
[[:req]]