如何使 rdoc 从我的 c 扩展中正确读取方法参数?
总之,我正在使用 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;
}
我有办法让这个工作成功吗?
all, I'm using rdoc to generate documentation for my Ruby code which contains C-extensions, but I'm having problems with my method arguments. Rdoc doesn't parse their names correctly and instead uses p1, p2 etc.
So, first off, my extensions are actually compiled as C++ so I have to use function definitions that look like this:
static VALUE
MyMethod(VALUE self, VALUE flazm, VALUE saszm)
{
return Qnil;
}
It looks like rdoc expects old style "C" definitions like this:
static VALUE
MyMethod(self, flazm, saszm)
VALUE self;
VALUE flazm;
VALUE saszm;
{
return Qnil;
}
Is there anyway I can make this work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
RDoc 对 C 扩展* 中的参数名称完全一无所知。 这就是 RDoc 编译参数字符串的方式:
更改源格式不会有帮助。
要改进您的文档,您可以使用
call-seq
指令。 您可以指定一种或多种方法来调用您的方法,这些方法将代替默认的method(p1, p2)
内容。* 它对其他一些事情也一无所知。 基于正则表达式的“解析”非常幼稚。
RDoc is completely clueless about argument names in C extensions*. This is how RDoc compiles the string of arguments:
Changing your source formatting won't help.
To improve your documentation, you could use the
call-seq
directive. You can specify one or more ways to invoke your method, which will be used instead of the defaultmethod(p1, p2)
stuff.* It is clueless about some other things as well. Regex-based "parsing" is very naive.