methods/argument_forwarding_parens.rb
tests/_examples/methods/argument_forwarding_parens.rb in the metorex repository.
def target(a, b:, &block)
[a, b, block.call]
end
def forwards_all(...)
target(...)
end
p(forwards_all(1, b: 2) { 3 })
def positional_target(a, b, c)
[a, b, c]
end
def forwards_rest(*)
positional_target(*)
end
p(forwards_rest(1, 2, 3))
def keyword_target(a:, b:)
[a, b]
end
def forwards_keywords(**)
keyword_target(**)
end
p(forwards_keywords(a: 1, b: 2))
def block_target(&block)
block.call
end
def forwards_block(&)
block_target(&)
end
p(forwards_block { :done })
p(7.clamp(..5))
Output:
[1, 2, 3]
[1, 2, 3]
[1, 2]
:done
5