Ruby global variables are not accessible via hosting API.
ScriptRuntime.Globals refers to global constants (constants defined on Object).

ScriptEngine ruby = IronRuby.Ruby.CreateEngine();
ruby.Runtime.Globals.SetVariable("Bar", 2);
ScritpScope scope = ruby.CreateScope();
scope.SetVariable("frm", 123);
ruby.ExecuteFile("test.rb", file);

where test.rb is
p frm, defined?(frm), p Bar

prints
123
Nil
2

frm is looked up via method_missing on the main object.

Tomas

 -----Original Message-----
From: ironruby-core-boun...@rubyforge.org 
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Ray Linn
Sent: Thursday, May 13, 2010 7:15 AM
To: ironruby-core@rubyforge.org
Subject: Re: [Ironruby-core] How to transfer scriptscrope to a RubyCommandLine

Ray Linn wrote:
> I found Ironruby 1.0 change a lot for some APIs, at previous version
> 
> I can create a rubycommandline via C# like this
> 
> IronRuby.Hosting.RubyCommandLine rubycommandline = new 
> RubyCommandLine(new 
> IronRuby.Runtime.RubyContext(ScriptDomainManager.CurrentManager));
> 
> but now the construction accept zero parameters, so How transfer a 
> scriptscope to RubyCommandLine..?
> 
> I used debug to verbose the instance of RubyCommandLine, its 
> scriptscope is always null!

2nd question why global variable does not work?


Form frm = new Form();
ScriptEngine ruby =
IronRuby.Ruby.GetEngine(IronRuby.Ruby.CreateRuntime());
ruby.Runtime.Globals.SetVariable("frm", frm); ScriptScope scriptscope = 
ruby.Runtime.CreateScope(); ScriptSource script = 
this.scriptengine.CreateScriptSourceFromFile("test.rb");
scriptscope.SetVariable("frm",frm);
ruby.Execute(script.GetCode(),scriptscope);
-----------------------------------------------
test.rb

defined? $frm
---------but it is nil....
defied? frm
it is ok...
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to