所有,我正在使用rdoc生成包含C扩展的Ruby代码的文档,但是我的方法参数有问题。 Rdoc没有正确解析它们的名称,而是使用p1,p2等。

所以,首先,我的扩展实际上是作为C ++编译的,所以我必须使用如下所示的函数定义:

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

看起来rdoc期望旧式“C”像这样的定义:

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

无论如何我能做到这一点吗?

有帮助吗?

解决方案

RDoc对C扩展*中的参数名称完全无能为力。这是RDoc编译参数字符串的方式:

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

更改源格式无济于事。

要改进文档,可以使用 call-seq 指令。您可以指定一种或多种方法来调用您的方法,这些方法将被用来代替默认的方法(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;
}

* 对其他一些事情也毫无头绪。基于正则表达式的“解析”非常天真。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top