Valores de parâmetro de método como padrões de outros parâmetros opcionais

Podemos definir parâmetros opcionais com valores padrão em Ruby:

def validate(username, options = {})
options

end

validate
'user'
=> {}

Mas você sabia que também podemos definir o valor padrão de um parâmetro opcional usando o valor de outro parâmetro?

def welcome(username, domain, email = "#{username}@#{domain}")
email

end

welcome
'user', 'host.com'
=> 'user@host.com'