Ruby Programming Language

RubyCocoa 0.11.1

Hi,

I am honored to announce the immediate release of RubyCocoa 0.11.1.

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.

This release fixes several bugs and regressions introduced by the previous release (0.11.0). Some features have been added though. All users are encouraged to upgrade.

Following are the release notes. Enjoy!

The RubyCocoa Team

Features: - Added a convenience Ruby -> Objective-C shortcut, to translate #foo= calls as #setFoo. - Introduced OSX::Boxed.size, a convenience method to get the size of the boxed C type. - Introduced ActiveRecordProxy#initWithRecord which returns a proxy for an existing record, and ActiveRecordProxy#initWithAttributes which creates a record with the attributes and returns a proxy. - Added some convenience API to pack/unpack Pascal strings: String#unpack_as_pstring and Array#pack_as_pstring. - New sample: Scripts/darkroom.rb.

Bugfixes: - It's now possible to generate the frameworks RDoc files using the latest hpricot version (0.5). - Fixed a bug in the ActiveRecord binding, where #to_ruby could be called on a nil object. - Misc sample code updates. - Fixed several bugs when passing already-allocated boxed structures as output arguments. - Added setter support for _C_ARY types, fixed existing getter support. - Fixed the ActiveRecordProxy#init method, it now takes no arguments. - Do not enable direct-override for ruby-derived classes. - In the ActiveRecord table view scaffold, when removing all table columns, make sure to iterate on a duplicate array to not mutate the original one during the enumeration. - When auto-overriding Objective-C methods, before doing the override compare the methods arity and raise an exception if they are not the same. - Fixed NSString#length to return the real number of characters. - Fixed minor issues related to passed-by-reference arguments declared between regular arguments. - Do not raise an exception when passing a String object as a C characters pointer (_C_CHARPTR). - ActiveRecordTableView#scaffold_columns_for will now set NSTableColumn#identifier to the name of the attribute so you can use this to check which column it is. - Added metaclass methods #find & method_missing which handles #find_by_foo to the ActiveRecordProxy, which works as normal but returns proxies for the results. - Optimized model class resolve method. Now also caches it. - Removed method_missing implementation in the active record proxy, instead we now define all the methods available. - When converting Objective-C objects to Ruby, do not cache those being converted in an Objective-C callback (either FFI closure or NSInvocation), because there is no way to clear the cache after. - Fixed NSApplication.run_with_temp_app.