Ruby 3.0 e os forwarding arguments with the leading arguments

Ruby 3.0 e os forwarding arguments with the leading arguments

Publicado em: 20/4/2016

Forwarding Arguments

No ruby 2.7 fomos apresentados ao forwarding arguments que é representado pelo ... . Nele você passava vários parametros para um método sem precisar nomear cada um deles. Como no exemplo abaixo

def show_args(...)
  puts(...) # should be parenthesized
end

show_args('string', [1, 2], {a: 'a', b: 'b', c: 'c'})

Agora no Ruby 3.0 fomos apresentados ao forwarding arguments along with the leading arguments. Que nos permite rastrear o array e os keyword arguments que foram recebidos dessa forma...

def repass_params(...)
  show_args(...)
end

def show_args(named, *args, **kwargs, &block)
  puts named
  puts args
  puts kwargs
end

repass_params('string', [1, 2], {a: 'a', b: 'b', c: 'c'})

Live Coding

Quer ver na prática? Assiste o vídeo.

Achei muito legal essa ideia e acaba trazendo uma infinidade de possibilidades ao utilizar o forwarding arguments. Gostou da dica, quer ver alguma outra dica? Deixa um comentário.