Hi, On Mar 18, 2008, at 2:14 PM, Niko Matsakis wrote:
I downloaded the early release of MacRuby hoping to integrate it into an existing cocoa application: I need to be able to run small amounts of user-supplied code to do custom string manipulations, and I thought MacRuby might be perfect for this. However, I don't see any obvious way to hand off an NSString with code and have it execute in some environment. Does such an API exist? The only entry point I saw was macruby_main(), which doesn't seem quite right, or ruby_exec_node() which looks pretty low-level. I realize that MacRuby is still in an early state, but I just wanted to be sure I wasn't overlooking something before I dug too much deeper.
At the moment the only thing you can do is to use the C APIs, which are not really user-friendly. We could introduce a convenience facility to evaluate code. NSNumber *number = [@"1+2+3+4+5" evaluateAsRubyExpression]; (Ideas?) Or directly calling Kernel#eval from Objective-C, as Ben said, which should work in theory, though I didn't try it yet. Laurent