3


3

私はC拡張を含む私のRubyコードのためのドキュメンテーションを生成するのにrdocを使っていますが、私は私のメソッドの引数に問題があります。 Rdocはそれらの名前を正しく解析せず、代わりにp1、p2などを使用します。

それで、最初に、私の拡張は実際にはCとしてコンパイルされるので、私はこのように見える関数定義を使わなければなりません:

静的VALUE MyMethod(VALUE自己、VALUE flazm、VALUE saszm){return Qnil; }

rdocはこのような古いスタイルの "C"定義を期待しているようです。

静的VALUE MyMethod(self、flazm、saszm)VALUE自己。 VALUE flazm;値saszm。 {return Qnil; }

私はこの仕事をすることができるとにかくありますか?

1 Answer


3


RDocは、Cの拡張機能*の引数名についてはまったくわかりません。 RDocはこのようにして引数の文字列をコンパイルします。

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

ソースフォーマットを変更しても意味がありません。

ドキュメントを改善するには、 `+ call-seq `ディレクティブを使用できます。 デフォルトの ` method(p1、p2)+`の代わりに使用されるメソッドを呼び出す1つ以上の方法を指定できます。

/*
 * 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;
}
  • _他のことについても無知です。 正規表現ベースの「解析」 非常に素朴です。