RubyOSA 0.3.0

Hi rubyists,

I am honored to announce the immediate release of RubyOSA 0.3.0.

RubyOSA is a bridge that connects Ruby to the Apple Event Manager
infrastructure. In big words, it allows you to do in Ruby what you
could do in AppleScript.

More information on the project home page (including a more deeply
project description, samples etc…):

Please also note that a tutorial covering all the RubyOSA features is
now available:

This new version brings some new interesting features such as the
possibility to control applications running on remote machines, use
scripting additions, and pass optional parameters to commands using a
Hash key/value pair syntax.

It also fixes a bunch of important bugs.

Following are the complete release notes. Enjoy!


RubyOSA 0.3.0


  • Can control applications running on remote machines ;
  • Now possible to pass optional arguments using key/value Hash pairs
    (the old
    way is still possible) ;
  • added support for merging scripting additions definitions to the
    application ;
  • Better unified API ;
  • Added new samples: AddressBook/inspect, iTunes/tag_genre_lastfm,
    Mail/get_selected_mail ;
  • Translating property codes to human-readable symbols ;
  • More human-readable errors ;
  • Added support for before/after location reference types ;
  • Faster (no more costly evaluation calls).


  • Fixed handling of application-level errors ;
  • Unescape the converted ‘alis’ paths ;
  • Now building 64-bit ;
  • Make sure ‘$’ and ‘=’ are escaped when generating Ruby symbols ;
  • Added a functional test suite ;
  • Fixed the OSA → Ruby ‘TIFF’ conversion ;
  • Fixed the Ruby → OSA ‘list_of_*’ conversion ;
  • Make sure we send events with the user-can-interact flag set on ;
  • Better RDoc generation (removed the Files frame, references to the
    dummy Ruby file and source code, changed the default HTML title) ;
  • Better inspect methods for OSA::Element and OSA::ObjectSpecifierList ;
  • Same conversion behavior for ‘type’ than ‘type class’ ;
  • Smarter #get method, if the resolved object doesn’t inherit from the
    class, and if it has a property method with a class key/value, return
    a new
    descriptor of the desired class ;
  • Honors the ‘id’ attribute of the sdef format ;
  • Be smarter when converting types from Ruby to OSA, making sure
    types are always converted ;
  • Fixed a memory leak ;
  • Added a new global setting to control either a return value should be
    expected or not from the following Apple events. Variable is
    default value is nil which means “automatic behavior”.