Como posso fazer rdoc lido corretamente argumentos de método de minha extensão c?
-
06-07-2019 - |
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?
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.