2009-06-23 3 views
3

alles, ich benutze Rdoc, um Dokumentation für meinen Ruby-Code zu generieren, der C-Erweiterungen enthält, aber ich habe Probleme mit meinen Methodenargumenten. Rdoc nicht analysieren ihre Namen nicht richtig und verwendet stattdessen p1, p2 usw.Wie kann ich rdoc richtig lesen Methodenargumente von meiner c-Erweiterung?

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 ist wie rdoc sieht erwartet alten Stil „C“ Definitionen wie folgt aus:

static VALUE 
MyMethod(self, flazm, saszm) 
    VALUE self; 
    VALUE flazm; 
    VALUE saszm; 
{ 
    return Qnil; 
} 

gibt es trotzdem ich diese Arbeit machen kann?

Antwort

3

RDoc ist völlig ratlos über Argumentnamen in C-Erweiterungen *. So kompiliert RDoc die Zeichenfolge der Argumente:

meth_obj.params = "(" + (1..p_count).map{|i| "p#{i}"}.join(", ") + ")" 

Ändern der Quellformatierung wird nicht helfen.

Um Ihre Dokumentation zu verbessern, können Sie die call-seq Direktive verwenden. Sie können eine oder mehrere Möglichkeiten zum Aufrufen Ihrer Methode angeben, die anstelle der standardmäßigen method(p1, p2)-Dateien verwendet wird.

/* 
* 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 andere Dinge auch. Regex-basierte "Parsing" ist sehr naiv.

Verwandte Themen