Wie behandelt man Ruby 2.0.0 Schlüsselwort Argumente von einer C-Erweiterung?Ruby Schlüsselwort Argumente in C-Extensions
Hintergrund
def example(name: 'Bob' hat_color: 'red')
puts "#{name} has a #{hat_color} hat!"
end
example #=> "Bob has a red hat!"
example(name: 'Joe', hat_color: 'blue') #=> "Joe has a blue hat!"
Schlüsselwort Argumente (wie oben) sind sehr nützlich, wenn Methoden der Handhabung, die eine Menge von verschiedenen Call-Sequenzen oder Optionen. Ich habe eine solche Methode in einer C-Erweiterung (eine blit
Methode, die die meisten der OpenGL-Zeichnung in meinem Projekt behandelt) und ich frage mich, wie ich die Methode Schlüsselwortargumente von Ruby behandeln könnte.
Ideen
Basierend auf einigen Recherchen habe ich getan, ich glaube, dass eine solche Behandlung könnte durch die :
Option auf die Funktion rb_scan_args
C durchgeführt werden. Ich konnte jedoch keine Informationen darüber finden, wie ich es verwenden könnte.
Ok (this issue sehen), danke! Wenn Schlüsselwortargumente nicht von der C-Erweiterungs-API verarbeitet werden können, was macht dann die Option ':' zu 'rb_scan_args'? – tophat
@tophat: Antwort bearbeitet, HTH. –