I'm working on an application that is primarily Objective-C but uses MacRuby as a plugin language (the application also has a C# / IronRuby counterpart on Windows, allowing for the plugins to be cross-platform).  I've been loading the ruby files at runtime using the Objective-C MacRuby API's sharedRuntime and bundling MacRuby into the application bundle.  However, the ruby plugins have gotten complex enough that parsing them is taking about 3 seconds at application startup on a modern MacBook Pro.  I would like reduce the load time by precompiling the ruby files and linking the resulting object files to the application.  So far I've done exactly that, but I can't figure out how to access the ruby classes at runtime from the Objective-C application.

I've tried two techniques:

// causes SIGABRT
id rubyClass = [[MacRuby sharedRuntime] evaluateString:@"MyRubyClass"];

- and -

// returns NULL
Class rubyClass = NSClassFromString(@"MyRubyClass");

I would love to see an example or description of how this can be done--- how to link pre-compiled ruby files (dylib) to an Objective-C application and then access the classes defined in those ruby files from the Objective-C environment..

I've dug through the last 6 months of the archives, and I've found only one other reference to this question, but it was left mostly unanswered:

http://lists.macosforge.org/pipermail/macruby-devel/2010-October/006206.html

-Justin