You will need to download IronRuby from http://ironruby.net/Download
In this sample, I just created a script.rb file which has some simple calls to one of the functions of my class. Then I created a console app. The code in my console app looks like this:
public class Program { static void Main(string[] args) { var worker = new CSharpWorker(); var runtime = IronRuby.Ruby.CreateRuntime(); var engine = runtime.GetEngine("Ruby"); var scope = engine.CreateScope(); scope.SetVariable("worker", worker); string fileName = @"C:\Demo\script.rb"; var script = engine.CreateScriptSourceFromFile(fileName); script.Execute(scope); Console.ReadLine(); } } public class CSharpWorker { public void SaySomething(string str) { Console.WriteLine(str); } }This code creates a runtime with Ruby engine and sets the scope of the script file to worker object. Once the execute is called, the code in script.rb file gets called. Code in script.rb file is a simple line: worker.SaySomething("Hi There")
When the script file runs, it outputs "Hi There". We can now change the script.rb file without the need of building the console exe.
We can create complex classes in the script.rb file and execute the same using this simple technique.