RubyCocoa 0.10.0 Developer Preview


#1

Hi,

We are pleased to announce the second RubyCocoa Developer Preview,
0.10.0.

RubyCocoa is a Mac OS X framework that allows Cocoa programming in the
object-oriented scripting language Ruby. In other words, it is a
bridge that let you access Objective-C objects from Ruby, and
vice-versa.

You can get more details about RubyCocoa 0.10.0, such as the
description of the changes against the stable branch and pointers to
the binary installer and source release tarball, at the following
location:

http://rubycocoa.sourceforge.net/doc/unstable/

Please notice that this is still a developer preview of RubyCocoa. You
should not use it for real-world deployments. It is delivered to you
only for testing purposes.

Please also visit the following web sites to get more general
information about RubyCocoa:

http://rubycocoa.sourceforge.net
http://rubycocoa.com

Following are the releases notes. Enjoy!

Features:

  • Introduced #objc_send, a convenience facility to send messages ;
  • Introduced #objc_export, a more intuitive alternative to
    #addRubyMethod_withType to override ObjC methods from Ruby ;
  • Added support for AddressBook and InstantMessage frameworks.
    Enhanced existing support of CoreData.
  • Added the possibility to add or override any method directly in a
    given ObjC class from Ruby (before it was only possible in a subclass)
    ;
  • Better Ruby API for NSIndexSet ;

New sample code:

  • PathDemo (Quartz) ;
  • ABPresence (AddressBook, InstantMessage) ;
  • Stickies (CoreData, Bindings) ;
  • MailDemo (Bindings).

Bugfixes:

  • Fixed direct import of ObjC classes when the OSX module is mixed in
    Object ;
  • Some build system fixes (make sure Ruby is built as a shared library
    and use the right Ruby binary to launch subtasks) ;
  • Properly format enums with signed values in metadata files ;
  • Fixed a KVC memory bug, making sure the ObjC values are not
    autoreleased while they are still used by Ruby ;
  • Fixed support for long long types ;
  • Make sure the RBObject proxies to pure Ruby objects are kept alive
    until the embedded Ruby object is collected ;
  • Fixed a message forwarding bug to ObjC objects that are overriding
    the default message dispatching mechanism ;
  • When starting the bridge, message NSBundle#oc_load as Object#load
    may have been overridden by ActiveRecord ;
  • Project cleaning (removed old deprecated code/files).