[MacRuby-devel] integrating macruby into cocoa apps

Benjamin Stiglitz ben at tanjero.com
Tue Mar 18 15:16:59 PDT 2008


>> 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?
> 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];

This is OK, but I’m not too keen on adding the extension method when  
there’s already something else that works.

> Or directly calling Kernel#eval from Objective-C, as Ben said, which
> should work in theory, though I didn't try it yet.

This will be easier when strings bridge properly. It seems like the  
cleanest way to me. You can even make a new proc and then call it over  
and over again.

RbObject *squareIt = [RbKernel eval:@"Proc.new {|n| n*n}"];
NSNumber *twentyFive = [squareIt call:[NSNumber numberWithInt:5]];

All this being said, it’d be nice to have a real quick way to boot up  
an embedded MR for “normal” Objective-C apps.

-Ben


More information about the MacRuby-devel mailing list