Riassunto brevemente: in ruby 2.6 o precedenti, i keyword argument erano solo zucchero sintattico per estrarre facilmente argomenti da un hash che si passa come ultimo argomento al metodo. Ruby 2.7 e successivi faranno distinzione netta da argument normali e keyword argument. In pratica:
def metodo(param1:, param2: param3:)
puts "#{param1}/#{param2}/#{param3}"
end
params = {param1: 'a', param2: 'b', param3: 'c'}
metodo(params) # funziona su ruby 2.6, ma non si puo' piu' fare, warning su ruby 2.7, errore su ruby 3