Соглашения об именах для разработчиков расширений Ruby C
Я заинтересован в соблюдении правильных правил именования при написании расширения для 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, названную правильно?
Ответы
Ответ 1
Вот еще пара: http://geoffgarside.co.uk/2007/05/20/ruby-c-extensions-nested-modules-classes/
Geoff Garside имеет пару десятков репозиториев, написанных на рубине /C. Он довольно правдоподобный ИМО. https://github.com/geoffgarside
Я буду продолжать искать и редактировать этот пост, когда найду больше.
ИЗМЕНИТЬ
Похоже, трудно найти кого-то, кто хочет поговорить о соглашениях об именах ruby extension... Возможно, вы могли бы попробовать отправить твит/электронную почту в направлении M. Garside. Он выглядит довольно активно на twitter.