From: MikkelFJ Date: 2001-12-12T10:44:01+09:00 Subject: [ruby-talk:28302] Re: [ANN] RubyCOM "Ralph Mason" wrote in message news:0a6301c18235$f190c9c0$0101a8c0@p3... > I have released a first cut of the RubyCOM package. > > Source is not released yet but will be available soon. > > RubyCOM allows you to use ruby object from Com clients, and also enhances > the Win32OLE functionality. > > Available from: > > www.geocities.com/masonralph/ruby.html OK since nobody else will comment on this: This I really an outstanding piece of very cool Ruby hacking. It is not necessarily what has been done, more what you can do with it and what it can do for Ruby. Credit also goes to the original Win32Ole code. It is still not production quality, there are still certain problems which I've mailed directly Ralph about. Assuming these issues will be solved, this is Ruby on steroids. It is not just the ability to create COM objects in Ruby. It actually means that you can execute Ruby code on the fly completely dynamically and complete effortlessly. Thanks to the Windows Wide COM environment you just grab an instance of the main RubyCOM object from just about any appliction or inferior scripting language. From here you can create Ruby classes. And when you have got one Ruby class, you can extend it quite easily. This means that you don't have the use any of the otherwise easy Ruby/C interface. It's like having a Sledgehammer at your fingertips because you can have a complete COM object in a single sprintf statement in C++. May I add that the Scite editor is great in this respect because it traps the COM error messages when executing Ruby and displays a somewhat meaningful message. I should mention that RubyCOM runs on Win32 natively compiled Ruby engine, hence we can't get a native Win32 Rubydistribution too soon such that we can avoid the confusion of which interpreter is running. This is also I giant credit to matz because this application really shows off the power of Rubys dynamic behaviour. This beharious is really annoying for compiling efficient code, but in the current scenario, it is awesame. It is simply something you just don't do in other languages. Well - you can, but not that easy. Credit also goes to other recent projects such as Distributed Tasks and Work Flow management. These are excellent projects where Ruby handles the birds eye perspective, and where RubyCOM / Win32Ole can access core components for system work. Somebody really needs to think about security now, because Ruby is about to creaty giant security holes in the network infrastructure. Back to RubyCOM, I really hope other important features such is vtable dispatched interfaces will be supported, because this allow you to create COM objects that can plug into existing frameworks. Also, a tool for registering Ruby COM components is vital and will be provided as I have understood. MikkelFJ