Я заинтересован в соблюдении правильных правил именования при написании расширения для ruby в C. В частности, я ссылаюсь на такие вещи, как добавление _p
для использования имен предикатов и префиксов переменных с m
для модуля, c
для класса и т.д.
Например, если мы хотим определить предикатный метод, подобный приведенному ниже в C, мы должны использовать _p
как суффикс в функции, которая определяет метод.
class MyClass
def awesome?
true
end
end
В C:
static VALUE my_extension_my_class_awesome_p(VALUE self) {
return Qtrue;
}
void Init_my_extension(void) {
VALUE cMyClass = rb_define_class("MyClass", rb_cObject);
rb_define_method(cMyClass,
"awesome?",
my_extension_my_class_awesome_p,
0);
}
Просматривая основной исходный код Ruby, я вижу суффиксы для _p
(предикат) и _m
, от которых я не могу вывести значение. Я уверен, что существует ряд других соглашений.
Существуют дополнительные соглашения об именах, например, когда использовать символы подчеркивания и когда использовать кожу верблюда. Было бы легко создать беспорядок без руководства, которое следует соблюдать при написании расширения с существенным количеством кода C.
Есть ли какой-то окончательный список? Я никогда не показываю полезных результатов при поиске по темам для расширений Ruby C. Любые быстрые примеры, которые показывают чистый синтаксис Ruby и эквивалентную функцию C, названную правильно?