Rucola 0.0.2 released


We are pleased to announce the second release of Rucola today.

This release has some major enhancements and therefore uses the new
RubyCocoa 0.13.

We’re happy to announce that Chris McGrath & Satoshi N. have
joined the team.
Chris added the foundation for ActiveRecord usage with Rucola. (No
fixtures etc yet.)
And Satoshi-san uses the crash reporter plugin in his excellent
RubyCocoa based irc client LimeChat,
for which he has provided lots of patches.

Also there’s support for autotest and some plugins.

And lots of other improvements.

Rucola team.

A Framework for building Cocoa applications in Ruby

Rucola is a light weight framework that helps you write RubyCocoa apps.
It allows you to build, test, and deploy applications using rake
eliminating the need to use XCode, however you can use XCode if you

Rucola provides a set of generators to help you generate controllers,
window controllers,
and document-based applications. It also provides APIs for simplifying
some of Objective-C’s
ways of doing things.



  • Initializer: Spec’d the class methods of Initializer.

  • Initializer: Change initializer to check if environment is release
    rather than debug so that we can have the same setup for debug and
    test. Fixes problem when AR plugin installed in app.

  • Plugin: Added script/generate rucola_plugin for rucola apps

  • Plugin: Add the initial Plugin code and hook it into the initializer

  • Plugin: Added Plugin#after_launch which uses a PluginRunner class
    that uses NSNotifications to run plugin hooks after the application
    has started.

  • Notifications: Added a helper for firing notifications.

  • Notifications: Moved notification name resolution to a separate
    method, and don’t raise NameErrors when the constant doesn’t exist.

  • Support: Added Rucola::InfoPlist#app_name & Rucola::RCApp#app_name
    which return the CFBundleExecutable value from the Info.plist file.

  • Testing: Added the code to make autotest play nice with a rucola app!!

  • Testing: Added autotest sound plugin, original idea from: Jeremy

  • Testing: Added autotest images plugin, copyright: John Nunemaker.

  • Testing: Added useful skeleton tests using test/spec and mocha.

  • Testing: Added a few more test helpers which provide a shortcut for
    getting ivars (ib_outlets).

  • InitializeHooks: The initialize_hooks will now call #after_init on
    an instance if it exists. This is so that #init doesn’t have to be
    overriden to setup defaults etc.

  • Generator: Updated the generators with better banners.

  • Generator: The document_model_generator will not longer run if no
    extension is specified, but rather display the usage banner.

  • Nib: Fixed bugs where destructive methods were called on immutable
    objects. This was a change in RubyCocoa.

  • Nib: Nib#add_class now takes an optional superclass.

  • Rake: Fixed a bug in the xcode rake task where the local var
    ‘executable’ was not passed explicitly into the thread. So the app
    would sometimes not come to the front.

  • Rake: The rake test task will now print with the -rr pretty test/
    spec output.

  • Rake: Modified xcode:build rake task to do xcodebuild everytime.
    Otherwise changes in the nibs will not be reflected in the app bundle.

  • Rake: Make main.rake load tasks from vendor/plugins//tasks/.rake


  • AR: Add basic ActiveRecord model, proxy and migration generator.

  • AR: The AR generator also adds the proxy and
    ActiveRecordSetController to the specified nibs.

  • AR: Move the ActiveRecord code into a rucola_activerecord plugin

  • AR: Added support for migrations and other AR tasks

  • Samples: Added another simple sample app (Leecher) which simply
    downloads files and displays the progress.

  • SACrashReporter: Fixed bug if ~/Library/Logs/CrashReporter doesn’t

  • SACrashReporter: Fixed bug in the crash log naming style on 10.5.

  • SACrashReporter: The crash reporter will never be ran if it’s the
    very first time.

  • SACrashReporter: Replaced the http posting with the cocoa equivalent
    and display message while the reporter is doing the post.

  • SACrashReporter: On Leopard every crash is logged in an individual
    file, now reads and writes those too.

  • SACrashReporter: SACrashReporter/init.rb now uses the new Plugin
    system to alter Initializer.do_boot and run SACrashReporter.submit
    after the application has started.

  • Rucola TM Bundle: Going to the view from the application controller
    will now open the MainMenu.nib in IB.

Err, forgot to add this link where you can find a screencast on
creating a Rucola/RubyCocoa app with BDD.