Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Extendendo Ruby com C (& cartoons)

Extendendo Ruby com C (& cartoons)

Ruby é uma linguagem prazerosa pra se trabalhar, mas as vezes é preciso um pouco mais de poder que somente a linguagem C pode oferecer. Nessa apresentação vou mostrar como criar interfaces entre código C e código Ruby.

Samuel Flores

October 20, 2012
Tweet

More Decks by Samuel Flores

Other Decks in Programming

Transcript

  1. • rb_define_method • classe, nome, ponteiro para função e número

    de parâmetros • -1 == C array • -2 == Ruby array Métodos
  2. • rb_funcall ‣ varargs • rb_funcall2 ‣ C array •

    rb_funcall3 ‣ só public • rb_apply ‣ Ruby array Enviar Mensagens
  3. VALUE obj = /* objeto */ ID id = rb_intern("to_s");

    rb_funcall(obj, id, 0); Enviando Mensagens
  4. Funções úteis - Strings • rb_str_new / rb_str_new2 • rb_str_dup

    • rb_str_cat / rb_str_concat • rb_str_split