كيف يمكنني جعل rdoc قراءة صحيح الحجج طريقة من تمديد ج بلدي؟

StackOverflow https://stackoverflow.com/questions/1030100

سؤال

وقبل كل شيء، أنا باستخدام rdoc لتوليد الوثائق لقانون بلدي روبي التي تحتوي على 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. يمكنك تحديد واحد أو أكثر من الطرق لاستدعاء الأسلوب الخاص بك، والتي سيتم استخدامها بدلا من الاشياء method(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