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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top