Как я могу заставить rdoc правильно читать аргументы метода из моего расширения c?
-
06-07-2019 - |
Вопрос
все, я использую rdoc для генерации документации для моего кода Ruby, который содержит C-расширения, но у меня проблемы с аргументами метода. 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)
stuff.
/*
* 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;
}
* Это не имеет никакого отношения и к другим вещам. Основанный на регулярных выражениях "синтаксический анализ" очень наивно.