Introdução ao IronRuby
IronRuby é uma implementação da linguagem de programação Ruby mirando o Microsoft. NET framework. Ele é implementado em cima do Dynamic Language Runtime (DLR), uma biblioteca que funciona em cima do Common Language Infrastructure que oferece tipagem dinâmica e método dinâmico de envio, entre outras coisas, para linguagens dinâmicas. O DLR faz parte da . NET Framework 4.0 e é também uma parte do tronco de compilações do Mono.
Um primeiro exemplo simples:
Arquivo Ruby
class Methods
def Nome(sNome)
return ‘Olá: ‘ + sNome + ‘ seja bem vind02412424′
end
def ComissaoVendedor(dValor)
return dValor – (dValor – (4.5 / 100))
end
end
Chamada pelo C# em console application:
using System;
using System.IO;
using Microsoft.Scripting.Hosting;
using IronRuby;
class Program
{
private static dynamic rubyObject = null;
static void Main(string[] args)
{
rubyObject = RubyEngineCreator.GetRubyObject(“RubyLogic”, “Methods”);
Console.WriteLine(rubyObject.Nome(“Thiago Jacometti”));
Console.WriteLine(“Sua comissão é: “ + rubyObject.ComissaoVendedor(900));
Console.ReadKey();
}
}
public static class RubyEngineCreator
{
private static ScriptEngine ironRubyEngine = null;
private static ScriptEngine CreateEngine()
{
if (ironRubyEngine == null)
ironRubyEngine = Ruby.CreateEngine();
return ironRubyEngine;
}
public static dynamic GetRubyObject(string rubyFileName, string rubyClassName)
{
string binDebug = Environment.CurrentDirectory.ToString();
var path = Path.Combine(binDebug, string.Format(“{0}.rb”, rubyFileName));
CreateEngine().ExecuteFile(path);
dynamic variable = CreateEngine().Runtime.Globals.GetVariable(rubyClassName);
return CreateEngine().Operations.CreateInstance(variable);
}
}
Como eu disse, esse é um exemplo simples mais para que possamos conhecer a linguagem. Em breve irei postar um passo à passo de como começar a desenvolver usando Ruby.
Obrigado,
Thiago Jacometti