Ich habe eine Methode wie folgt definiert:Kann dieser Ruby-Methodenaufruf ohne ** {} am Ende gemacht werden?
def woot(a = nil, b: nil)
...
end
Was die am wenigsten hässliche Art und Weise ist eine Hash
Instanz a
zu passieren, wenn b
weggelassen?
versuchte ich
woot(x: 1)
woot({x: 1})
h = {x: 1}
woot(h)
aber sie alle heben
ArgumentError: unknown keyword: x
Der einzige Weg, um den Anruf zu machen, dass ich herausgefunden habe, ist
woot({x: 1}, **{})
Gibt es eine schönere Art und Weise?
http://stackoverflow.com/questions/27821422/how-cani-i-collapse-double-splat-arguments-into-nothing :: ** TLDNR; ** es ist wahrscheinlich ein Bug in aktuellen Ruby impl. – mudasobwa