Comment faire en sorte que rdoc lise correctement les arguments de méthode à partir de mon extension c?

StackOverflow https://stackoverflow.com/questions/1030100

Question

tous, j'utilise rdoc pour générer de la documentation pour mon code Ruby qui contient des extensions C, mais j'ai des problèmes avec les arguments de ma méthode. Rdoc n'analyse pas leurs noms correctement mais utilise p1, p2, etc.

Donc, tout d’abord, mes extensions sont en fait compilées en C ++, donc je dois utiliser des définitions de fonctions qui ressemblent à ceci:

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

Il semble que rdoc s’attende au style ancien "C". des définitions comme celle-ci:

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

Est-ce que je peux faire ce travail de toute façon?

Était-ce utile?

La solution

RDoc n’a aucune idée des noms d’arguments dans les extensions C *. Voici comment RDoc compile la chaîne d'arguments:

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

Modifier le formatage de votre source ne vous aidera pas.

Pour améliorer votre documentation, vous pouvez utiliser la directive call-seq . Vous pouvez spécifier un ou plusieurs moyens d'appeler votre méthode, qui seront utilisés à la place de la méthode par défaut (p1, p2) .

/*
 * 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;
}

* Il n’existe pas non plus d’autres choses. & Quot; analyse " à base de regex est très naïf.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top