Quiero llamar al código Ruby desde mi propio código C. En caso de que se levante una excepción, tengo que proteger rb_ el código ruby que llamo. rb_protect se parece a esto:cómo proteger rb_todo todo en ruby
VALUE rb_protect(VALUE (* proc) (VALUE), VALUE data, int * state)
Así proc
tiene que haber una función que toma VALUE
argumentos y devuelve VALUE
. Tengo que llamar a muchas funciones que no funcionan de esa manera. ¿Cómo puedo I rb_protect
de levantar excepciones?
He pensado en usar Data_Make_Struct
para envolver todo en un objeto Ruby y llamar a métodos sobre él. Data_Make_Struct
podría generar una excepción. ¿Cómo puedo rb_protect
Data_Make_Struct
?