[Ironruby-core] Passing a .NET object to the RubyEngine...

Eric Nicholson enicholson at gmail.com
Fri Sep 28 09:38:28 EDT 2007


Here's a quick example:

RubyEngine re = RubyEngine.CurrentEngine;
IScriptModule mod = ScriptDomainManager.CurrentManager.Host.DefaultModule

  string script = "puts 'Ruby and ' + var.to_s + ' together at last'"

 mod.SetVariable("var", ".NET")

  re.ExecuteCommand(script, mod);
A couple things to note:
1. var.to_s is necessary because I don't think IR is coercing CLR Strings to
Ruby Strings yet.
2. I'm not sure why you need to pass in the default module to
ExecuteCommand, but I wasn't able to evaluate the variable in Ruby
otherwise.

-Eric

On 9/28/07, Phil Haack <haacked at gmail.com> wrote:
>
>  Hi All, I posted some code for calling IronRuby code I found in the
> mailing list onto the wiki.
>
>
>
> http://ironruby.rubyforge.org/wiki/wiki.pl?ExecutingIronRubyFromCSharp
>
>
>
>   RubyEngine re = RubyEngine.CurrentEngine;
>
>   string script = "s = 'let us get started'" + Environment.NewLine
>
>     + "i = s.length");
>
>   re.ExecuteCommand(script);
>
>
>
> The only thing is, I don't know how to pass a .NET object to the context
> of the RubyEngine so it can be called from within the script. I'd like to
> update the example with that.
>
>
>
> Any help?
>
>
>
> Phil
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/ironruby-core/attachments/20070928/e7a698c0/attachment.html 


More information about the Ironruby-core mailing list