functions/destructured_params.rb

tests/_examples/functions/destructured_params.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]]