[Ironruby-core] Busy Day with IronRuby

Ivan Porto Carrero ivan at flanders.co.nz
Sun Jan 27 18:23:04 EST 2008


Hi Greg,

This is what i used at some point, that should still work atm.

class Program
    {
        static void Main(string[] args)
        {
            //TODO: review this when the hosting api changes.
            IScriptEnvironment runtime = ScriptEnvironment.GetEnvironment();

            Console.WriteLine("Executing from file:");
            runtime.ExecuteFile("..\\..\\hello_world.rb");

            IScriptEngine engine = IronRuby.GetEngine(runtime);
            IScriptScope scope = engine.CreateScope();

            List<string> strings = new List<string>();
            strings.Add("Hello, ");
            strings.Add("World!!!");
            IronRuby.GetExecutionContext(runtime).GlobalVariables[
SymbolTable.StringToId("strings")] = strings;

            SourceUnit script = engine.CreateScriptSourceFromString(
 @"
puts ""Hello World! There are #{$strings.count.to_s} strings:""
$strings.each_with_index { |s,i| puts ""#{i}: #{s}"" }
");

            Console.WriteLine("Executing from string:");
            engine.Execute(scope, script);
        }
    }



On Jan 28, 2008 12:16 PM, Greg Akins <angrygreg at gmail.com> wrote:

> OK, so I couldn't get some of the simple examples of using RubyEngine
> to start calling Ruby from C#...
>
> So I spent a bit reading through the mailing list archives (realizing
> while doing that, that I'd asked a frequently asked question).
>
> Now, I hope I'm not asking another stupid question.
>
> I found another post (
> http://rubyforge.org/pipermail/ironruby-core/2008-January/000616.html
> ) that suggests a method of running Ruby.
>
> However, I get an error on this line
>
>            IScriptEngine engine = IronRuby.GetEngine(runtime);
>
> Which shows this stack trace
>
>   at System.RuntimeMethodHandle._InvokeConstructor(Object[] args,
> SignatureStruct& signature, IntPtr declaringType)
>   at System.RuntimeMethodHandle.InvokeConstructor(Object[] args,
> SignatureStruct signature, RuntimeTypeHandle declaringType)
>   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags
> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,
> Binder binder, Object[] args, CultureInfo culture, Object[]
> activationAttributes)
>   at System.Activator.CreateInstance(Type type, BindingFlags
> bindingAttr, Binder binder, Object[] args, CultureInfo culture,
> Object[] activationAttributes)
>   at System.Activator.CreateInstance(Type type, Object[] args)
>   at Microsoft.Scripting.Utils.ReflectionUtils.CreateInstance[T](Type
> actualType, Object[] args) in
>
> c:\Libraries\IronRuby\trunk\src\microsoft.scripting\Utils\ReflectionUtils.cs:line
> 127
>
> --
> Greg Akins
> Software Development Manager
> SSI Services
>
> http://kc.vanadium.com
> http://www.pghcodingdojo.org
> http://www.insomnia-consulting.org/monologue
> _______________________________________________
> 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/20080128/ca6268e5/attachment.html 


More information about the Ironruby-core mailing list