From: Chris Pine Date: 2003-04-25T07:39:26+09:00 Subject: Re: Accessing Ruby class from C extention ----- Original Message ----- From: "Phil Tomson" It seems like to call the constructor of a Ruby class from C that you have to use rb_eval_string("YourRubyClass.new"); I don't see how you could do it otherwise since rb_funcall needs a receiver and you don't yet have a reciever: rb_funcall(VALUE recv, ID id, int argc, ...); So how would you call Foo.new using rb_funcall? You'd have to get the ID: rb_intern("Foo.new"); But then what would you use for recv? ---------------------------- I think the id is basically the symbol; so you only want the id for "new", not for "Foo.new". To get the recv, I think you can use the C version of: Object.const_get "YourClassName" which is probably something like rb_const_get... make sure you intern your strings! Chris