Unfortunately I'm not using rubydotnetproxy for my own projects ... I'd need to port it to Mono to be useful for me. (I did a quick port, just had to change the bootstrap code (about 20 lines of C) and a few other bits. It "works" if you turn off Ruby's garbage collection, and crashes otherwise.)
Since I'm not personally using it, it lacks polish, e.g. installation, features that you only find useful when you actually use it, bugs. There are several critical bugs that I know about that I haven't fixed. In addition, I have some simple changes that can make the bridge perform over 100 times faster, but if you download the bridge you'll get the slow version. I've communicated my performance results to the other bridge developers.
If I get enough time to port rubydotnetproxy to Mono and start using it myself, I'll revive the project.
I recommend that interested users instead look at one of the following projects: http://www.saltypickle.com/rubydotnet/ or http://rubydotnet.sf.net/.
Thanks, Tim Sutherland. (Have a look at my page on the RubyGarden wiki: TimSuth if you're interested in knowing what I'm up to.)
See the project page for downloads of rubydotnetproxy. The documentation is included in there.
RubyDotNetProxy enables Ruby to use .NET code and .NET to use Ruby code. The license is an MIT-style one. This is an Open Source / Free Software license.
Example of Ruby calling .NET code:
require 'dotnet' h = DotNet.System.Collections.Hashtable.new h[1] = 'one' h[2] = 'two' h[3] = 'three' one = h[1] one.ToUpper() puts(one) # outputs "ONE"
Example of C# calling Ruby code:
using RbType = RubyDotNetProxy.RbType;
public class Example {
public static void Main(string[] args) {
RbType ary = RbType.Eval("%w(one two three)");
RbType one = ary[0];
RbType bigone = one.Call("upcase");
System.Console.WriteLine(bigone); # outputs "ONE"
}
}
Features: