Wie kann ich rdoc richtig Methodenargumente aus meiner c Erweiterung lesen?
-
06-07-2019 - |
Frage
alle, ich bin mit rdoc Dokumentation für meine Ruby-Code zu erzeugen, die C-Erweiterungen enthält, aber ich habe Probleme mit meiner Methode Argumente haben. Rdoc nicht analysiert ihre Namen nicht richtig und verwendet stattdessen P1, P2 etc.
Also, zunächst einmal, sind meine Erweiterungen tatsächlich kompiliert wie C ++, also muss ich Funktionsdefinitionen verwenden, die wie folgt aussehen:
static VALUE
MyMethod(VALUE self, VALUE flazm, VALUE saszm)
{
return Qnil;
}
Es sieht aus wie rdoc alten Stil "C" Definitionen wie folgt erwartet:
static VALUE
MyMethod(self, flazm, saszm)
VALUE self;
VALUE flazm;
VALUE saszm;
{
return Qnil;
}
Gibt es trotzdem kann ich diese Arbeit machen?
Lösung
RDoc ist völlig ahnungslos über Argumentnamen in C-Erweiterungen *. Dies ist, wie RDoc die Zeichenfolge von Argumenten erstellt:
meth_obj.params = "(" + (1..p_count).map{|i| "p#{i}"}.join(", ") + ")"
Ändern der Quellformatierung wird nicht helfen.
Ihre Dokumentation zu verbessern, könnten Sie die call-seq
Direktive verwenden. Sie können eine oder mehrere Arten geben Sie Ihre Methode aufzurufen, die anstelle der Standard-method(p1, p2)
Sachen verwendet werden.
/*
* call-seq:
* my_method(flazm, saszm) -> nil
* my_method(bunny) { |fluffy_ears| ... } -> true or false
*
* Method description here.
*/
static VALUE
MyMethod(VALUE self, VALUE flazm, VALUE saszm)
{
return Qnil;
}
* Es ist ahnungslos über einige auch andere Dinge. Regex-basierte "Parsen" ist sehr naiv.