John – I have a couple of suggestions that I think may make the RubyCLR experience better. I spent a bit of time trying to understand the way you can sync Ruby objects with .NET objects, and I think I understand how now, but the documentation on the RubyCLR site is currently scarce, and there were some things that weren’t intuitively obvious.
- Expose all Ruby methods in Bindable classes, instead of only exposing Ruby methods whose signature match declared interfaces. This may not be that usable in C#, but in VB, this would be awesome in combination with the late binder. You can really have a dynamic experience in both Ruby and VB if this were enabled.
- get_binding_context should be optional; I may not want to expose properties in my class.
- The ‘::’ and ‘.’ operators aren’t terribly consistent. For example, when binding to the type directly from Ruby, ‘::’ is used as a namespace selector. But when used in ‘clr_interfaces’ you have to use ‘.’ because the CLR expects ‘.’ delimited namespace names. It would be more consistent to use ‘::’ in clr_interfaces and then remap them internally.
All in all though, RubyCLR is amazing. I’ll be posting more of my work in the next few days, and I hope that it will help people play with and start using