This is by design. Ruby global variables are Ruby special feature, not all
languages have such thing.
You can however use the scope and completely avoid statically referencing
IronRuby assemblies:
var runtime = ScriptRuntime.Create();
var scope = runtime.CreateScope("Ruby");
scope.SetVariable("customers", list);
scope.Execute("p customers");
In this example, "customers" is a method call that hits method_missing. The
IronRuby's implementation of method_missing looks into the scope if run in a
hosted environment.
Tomas
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ben Hall
Sent: Monday, June 23, 2008 5:23 PM
To: [email protected]
Subject: [Ironruby-core] ExecutionContext without references IronRuby
Hi,
This might be a bit of a strange request, but is it possible to get
access to the ExecutionContext without actually referencing the
IronRuby assembly?
As a quick demo, I wrote the following code:
ScriptRuntime runtime = IronRuby.CreateRuntime();
engine = IronRuby.GetEngine(runtime);
RubyExecutionContext ctx = IronRuby.GetExecutionContext(engine);
list = new List<string>();
ctx.DefineGlobalVariable("customers", list);
Ideally, what I wanted to write was something more like but $customers
is always nil.
scope = engine.CreateScope();
scope.SetVariable("$customers", list);
I was hoping this would have had the same affect as the code above.
Is this by design, a limitation or a bug?
Thanks
Ben
Blog.BenHall.me.uk
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core