From: Jason Roelofs Date: 2009-01-23T04:23:45+09:00 Subject: Re: Calling class methods from C From the top of my head: rb_funcall(rb_const_get("CallTest"), rb_intern("go"), 0); And if you're calling "global" methods, it's better to call it on Kernel, where the methods are defined anyway: rb_funcall(rb_mKernel, rb_intern("method_name"), args); Hope that helps. Jason On Thu, Jan 22, 2009 at 2:11 PM, Robert Rouse wrote: > Hello, > > I'm trying to call a class method from C. I've tried all combinations of > rb_intern I could think of to make it work, but I've gotten nothing. > > Example class > > class CallTest > def go > (do something here) > end > > end > > rb_funcall(?, rb_intern("go"), 0); > > What goes in the ? space? I know if I use Qnil there, it will call > global functions, but I'd prefer class methods. > > Am I heading in the wrong direction? > > Also, I'd prefer not to have to know the class name ahead of time if > possible, but if I have to require that I know what it is, I can try > passing it by name to my application. > > I'm using SWIG to generate the binding. > -- > Posted via http://www.ruby-forum.com/. > >