c拡張からメソッド引数をrdocに正しく読み取らせるにはどうすればよいですか?
-
06-07-2019 - |
質問
すべて、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
ディレクティブを使用できます。デフォルトの 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;
}
* 他のことについても無知です。正規表現ベースの「解析」非常に素朴です。
所属していません StackOverflow