Chciałbym mieć metodę, która akceptuje hash i opcjonalny argument słowa kluczowego. Próbowałem definiowania metody takie jak to:Jak mogę zapobiec rozszerzeniu argumentu pozycyjnego na argumenty słów kluczowych?
def foo_of_thing_plus_amount(thing, amount: 10)
thing[:foo] + amount
end
Kiedy wywołać tę metodę z argumentem kluczowym, to działa jak oczekuję:
my_thing = {foo: 1, bar: 2}
foo_of_thing_plus_amount(my_thing, amount: 20) # => 21
Kiedy pominąć argumentu słowa kluczowego jednak hash zostanie zjedzony:
foo_of_thing_plus_amount(my_thing) # => ArgumentError: unknown keywords: foo, bar
Jak mogę temu zapobiec? Czy istnieje coś takiego jak antysplat?
Dzięki. Przynajmniej teraz wiem obejście: użyj parametru keyword za każdym razem. Bardzo denerwujące. –