¿Cómo puedo hacer que rdoc lea correctamente los argumentos del método desde mi extensión c?

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

Pregunta

todos, estoy usando rdoc para generar documentación para mi código Ruby que contiene extensiones C, pero tengo problemas con los argumentos de mi método. Rdoc no analiza sus nombres correctamente y en su lugar usa p1, p2, etc.

Entonces, en primer lugar, mis extensiones están compiladas como C ++, así que tengo que usar definiciones de funciones que se vean así:

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

Parece que rdoc espera un estilo antiguo " C " definiciones como esta:

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

¿Hay alguna forma de hacer que esto funcione?

¿Fue útil?

Solución

RDoc no tiene ni idea de los nombres de argumentos en extensiones C *. Así es como RDoc compila la cadena de argumentos:

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

Cambiar el formato de origen no ayudará.

Para mejorar su documentación, puede usar la directiva call-seq . Puede especificar una o más formas de invocar su método, que se utilizará en lugar del método (p1, p2) predeterminado.

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

* Tampoco tiene idea de otras cosas. Basado en expresiones regulares "análisis" es muy ingenuo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top