Pergunta

tudo, eu estou usando rdoc para gerar a documentação para o meu código Ruby que contém C-extensões, mas eu estou tendo problemas com meus argumentos de método. Rdoc não analisa seus nomes corretamente e em vez disso usa p1, p2 etc.

Assim, em primeiro lugar, minhas extensões são realmente compilado como C ++ por isso tenho de definições de funções uso que se parecem com isto:

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

Parece que rdoc espera estilo antigo "C" definições como esta:

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

Existe uma maneira que eu posso fazer este trabalho?

Foi útil?

Solução

RDoc é completamente ignorante sobre nomes de argumentos em extensões C *. Isto é como RDoc compila a string de argumentos:

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

Alterando sua fonte formatação não vai ajudar.

Para melhorar a documentação, você pode usar a diretiva call-seq. Você pode especificar uma ou mais formas de invocar o seu método, que será usado em vez do material method(p1, p2) padrão.

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

* É ignorante sobre algumas outras coisas também. baseada em Regex "análise" é muito ingênuo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top