[Ironruby-core] How to implement a C# interface from Ruby ?
Tomas Matousek
Tomas.Matousek at microsoft.com
Mon Feb 9 20:45:38 EST 2009
You need to call the method from C# to check whether it is actually bound to the CLR interface implementation. The method will always be callable from Ruby.
Tomas
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Jimmy Schementi
Sent: Monday, February 09, 2009 5:43 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] How to implement a C# interface from Ruby ?
How does it fail? Nothing fails for me, but how are you trying to use this Ruby class?
(test.cs has your c# code in it):
C:\dev>csc.exe /t:library test.cs
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.715
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.
C:\dev>ir
IronRuby 1.0.0.0 on .NET 2.0.50727.3521
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require 'test.dll'
=> true
>>> class Doer
... include IDoSomething
... def hello_world
... puts "hello"
... end
... end
=> nil
>>> Doer
=> Doer
>>> Doer.new
=> #<Doer:0x000005c>
>>> Doer.new.hello_world
hello
=> nil
~js
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Thibaut Barrère
Sent: Monday, February 09, 2009 5:23 PM
To: ironruby-core
Subject: [Ironruby-core] How to implement a C# interface from Ruby ?
Hello again,
I'm playing around with the idea of using IronRuby to implement plugins for a C#-based system (namely, CruiseControl.Net).
I'm having some difficulties trying to figure out what the correct syntax for that would be. I'm currently using this to bootstrap the engine:
var reader = new StreamReader("plugin.rb");
var code = reader.ReadToEnd();
reader.Close();
var engine = IronRuby.Ruby.CreateEngine();
engine.Execute(code);
The code inside plugin.rb is trying to implement an existing C# interface:
public interface IDoSomething {
void HelloWorld();
}
I tried:
class Doer
include IDoSomething
def hello_world
puts "hello"
end
end
but it fails. What would be the correct syntax for a Ruby class to implement this ?
thanks!
-- Thibaut
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090209/9c6b4f85/attachment-0001.html>
More information about the Ironruby-core
mailing list