Mi piacerebbe avere un metodo che accetta un hash e un argomento di parole chiave opzionale. Ho provato la definizione di un metodo come questo:Come posso evitare che un argomento posizionale venga espanso in argomenti di parole chiave?
def foo_of_thing_plus_amount(thing, amount: 10)
thing[:foo] + amount
end
Quando invoco questo metodo con l'argomento chiave, funziona come mi aspetto:
my_thing = {foo: 1, bar: 2}
foo_of_thing_plus_amount(my_thing, amount: 20) # => 21
Quando esco fuori l'argomento parola chiave, tuttavia, l'hash viene mangiato:
foo_of_thing_plus_amount(my_thing) # => ArgumentError: unknown keywords: foo, bar
Come posso evitare che ciò accada? Esiste qualcosa come un anti-splat?
Grazie. Almeno ora so una soluzione: usa il parametro keyword ogni volta. Piuttosto fastidioso. –