Hey guys.
I am currently experimenting with IronRuby as an extensibility solution
for my application. However, I have hit a roadblock. What I would like
to do is call Runtime.UseFile("script.rb"), then access a global module
in the script, and instantiate a specific class in that module.
Here is the script file for reference:
module RbScriptApp
class Foo
def Bar()
return (rand(100) + 1).to_s();
end
end
end
Initially, I thought it would be as easy as typing
dynamic globals = myRuntime.Globals;
dynamic myClass = globals.RbScriptApp.Foo.@new();
myClass.Bar();
...
but I soon found out this was not the case, as the builtin RubyModule
class does not support this dynamic syntax. Is there a way around this
or is it just plain impossible? I was unable to find *any* information
about how to do this (not even about RubyModule itself!) through Google.
The exception in question is a RuntimeBinderException:
'IronRuby.Builtins.RubyModule' does not contain a definition for 'Foo'
Right now my workaround is a call to EnumerateConstants and manual
lookup of the class name I want, but it doesn't have the syntactic
elegance of the dynamic keyword... Any thoughts?
Thanks.
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core