Hey guys,
I’m using IronRuby to interface with a clr library. There is a small
problem however: It has one class that does not start with a capital
letter. This causes IronRuby to just not see the class since ruby does
not support lowercase constantnames. Does anyone know if it’s possible
to work around this in IronRuby (like somehow getting a reference to
it with a string, and then assigning it to different ruby constant)?
Or should I make my own clr dll that exposes the class with a
different (uppercased) name?
Cheers,
Tinco Andringa (simkor.nl)
Hmm I’ve found the documentation for IronRuby now It says class
names should automatically be capitalized. This however seems not to
have happened since it plainly isn’t available. I have worked around
the issue by renaming it in the source, but this forces me to ship
precompiled dll’s instead of referencing the other framework.
Should I file a bugreport? This is on the 1.1.1 release
Cheers,
Tinco
This might be a bug in the documentation :-)? Method names are mangled
so that you can use foo_bar to call FooBar method.
You should be able to use const_get(:foo) to get to the constant.
Tomas
Hey Tomas,
Thanks for the reply. const_get :foo also raises the constants should
begin with an uppercase letter error
Object.const_get :foo
(ir):1:in const_get':
foo’ is not allowed as a constant name
(NameError)
from (ir):1
Cheers,
Tinco
On Fri, Nov 19, 2010 at 00:32, Tomas M.
On Fri, Nov 19, 2010 at 2:41 PM, Shay F.
[email protected]wrote:
Look here:
http://www.ironshay.com/post/Working-with-NET-Lowercase-Namespaces-and-Classes-in-IronRuby.aspx
http://www.ironshay.com/post/Working-with-NET-Lowercase-Namespaces-and-Classes-in-IronRuby.aspx
Shay.
Excellent solution. I mean, really, all the C# classes should start with
an
uppercase letter, thats basically a standard, therefore this should be
the
only solution and I don’t see no need to actually hack this otherwise
into
IronRuby.