Chciałbym postępować zgodnie z prawidłowymi konwencjami nazewnictwa, pisząc rozszerzenie ruby w C. W szczególności mówię o dodawaniu _p
do nazw funkcji predykatów i zmiennych prefiksowych za pomocą m
dla modułu , c
dla klasy itp.Konwencje nazewnictwa dla programistów rozszerzeń języka Ruby C
Na przykład, jeśli chcemy zdefiniować metodę predykatu, jak w C, powinniśmy użyć _p
jako sufiksu w funkcji, która definiuje metodę.
class MyClass
def awesome?
true
end
end
w 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);
}
Patrząc przez rdzeń kodu źródłowego Ruby widzę przyrostków dla _p
(predykat) i _m
, których nie jestem w stanie wywnioskować znaczenie z. Jestem pewien, że istnieje wiele innych konwencji.
Istnieją dodatkowe konwencje nazewnictwa, np. Kiedy stosować podkreślenia i kiedy używać wielbłądzowej obudowy. Łatwo byłoby stworzyć bałagan bez wytycznych do zastosowania przy pisaniu rozszerzenia z dużą ilością kodu C.
Czy istnieje gdzieś ostateczna lista? Nigdy nie wydaje się, aby wyniki były przydatne podczas wyszukiwania w Google dla tematów rozszerzenia Ruby C. Jakieś szybkie przykłady, które pokazują poprawnie składnię Ruby i odpowiadającą jej funkcję C?
Zgaduję, że _m jest przyrostkiem dla metody. – Linuxios
Zakładam, że szukasz przewodnika po angielsku, a nie po japońsku, prawda? >< –
@AndrewGrimm jest niesamowity przewodnik napisany po japońsku, z częściową pracą do przetłumaczenia go na angielski (http://rhg.rubyforge.org/), ale tak, podchwytliwe :) – d11wtq