public void Interactive2() {
string s;
Assert((s = Engine.Operations.Format(new RubyArray(new[] { 1,2,3 }))) == "[1, 2, 3]");
var obj = Engine.Execute(@"class C; def to_s; 'hello'; end; new; end");
Assert((s = Engine.Operations.Format(obj)) == "hello");
obj = Engine.Execute(@"class C; def to_s; 'bye'; end; new; end");
Assert((s = Engine.Operations.Format(obj)) == "bye");
obj = Engine.Execute(@"class C; def inspect; [7,8,9]; end; new; end");
Assert((s = Engine.Operations.Format(obj)) == "[7, 8, 9]");
var scope = Engine.CreateScope();
scope.SetVariable("ops", Engine.Operations);
s = Engine.Execute<string>(@"ops.format({1 => 2, 3 => 4})", scope);
Assert(s == "{1=>2, 3=>4}");
}