Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How I retrieve a 'standalone' symbol on Ruby's C extension API

I want to return several values from a C function, and IMHO, a hash is a good option. I first used rb_intern('A_KEY') to create the keys, but the extension crashed. Now, I am using rb_str_new2, but I prefer symbols.

How do I create a new symbol, and use it without referring to a class or a method?

like image 507
clbustos Avatar asked Dec 24 '10 15:12

clbustos


1 Answers

You need to use the ID2SYM macro to convert the identifier that you get from rb_intern into a ruby symbol. Try changing

rb_intern('A_KEY')

to

ID2SYM(rb_intern('A_KEY'))
like image 93
matt Avatar answered Sep 19 '22 00:09

matt