public
Description: A Framework for rapidly building RubyCocoa applications
Homepage: http://rucola.rubyforge.org/
Clone URL: git://github.com/alloy/rucola.git
Click here to lend your support to: rucola and make a donation at www.pledgie.com !
rucola /
name age message
file .gitignore Sun Nov 11 12:20:15 -0800 2007 Add basic ActiveRecord model, proxy and migrati... [octopod]
file ChangeLog Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
file History.txt Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
file License.txt Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
file Manifest.txt Sun Mar 16 06:09:45 -0700 2008 Added a test case mixin which sets up a test ca... [alloy]
file README.txt Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
file Rakefile Fri Feb 15 06:41:49 -0800 2008 Added rdoc task. git-svn-id: svn+ssh://rubyfo... [Manfred]
file TODO Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
directory app_generators/ Mon Sep 01 06:20:06 -0700 2008 The latest version of XCode requires the InfoPl... [alloy]
directory bin/ Fri Jul 11 02:42:38 -0700 2008 Prepared for release 0.5. [alloy]
directory config/ Sat Dec 06 06:25:13 -0800 2008 Small changes to the FSEvents API. - FSEvents.... [Manfred]
directory lib/ Tue Sep 15 09:22:54 -0700 2009 Make FSEvent#files more resilient against disap... [Manfred]
directory log/ Sat Oct 20 08:15:00 -0700 2007 Imported the existing code from local Git repo.... [alloy]
directory rucola_generators/ Sat Apr 12 07:26:58 -0700 2008 2008-4-12 Eloy Duran <e.duran@superalloy.nl> ... [alloy]
directory script/ Sat Oct 20 08:15:00 -0700 2007 Imported the existing code from local Git repo.... [alloy]
file setup.rb Sat Oct 20 08:15:00 -0700 2007 Imported the existing code from local Git repo.... [alloy]
directory tasks/ Sat Oct 20 08:15:00 -0700 2007 Imported the existing code from local Git repo.... [alloy]
directory test/ Tue Sep 15 09:22:54 -0700 2009 Make FSEvent#files more resilient against disap... [Manfred]
directory website/ Tue Dec 09 02:47:52 -0800 2008 Forgot to commit these 0.5.1 version changes. [alloy]
README.txt
= Rucola: A Framework for rapidly building RubyCocoa applications

Rucola is a light weight framework that helps you write RubyCocoa apps.
It allows you to build, test, and deploy applications using rake commands, 
eliminating the need to use XCode for the most common tasks.

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.

== Generating an application skeleton

    rucola MyApp -a "Your Name"

Running this command will give you a complete, working application with a single window already 
bound to your application controller.

== Working with Interface Builder

A Cocoa application contains `outlets`.  Outlets allow you to bind variable names to objects.
An object can be a user interface element or an instance of a class.

    class ApplicationController < Rucola::RCController
      ib_outlet :main_window

      def awakeFromNib
        puts "ApplicationController awoke."
        puts "Edit: app/controllers/application_controller.rb"
        puts  "\nIt's window is: #{@main_window.inspect}"
      end
    end

The `@main_window` variable now points to the user interface window.  You can invoke any methods of NSWindow.

There is also a `rake ib:update` that will update your nib files with the outlets you specify in your code.
For example, if we wanted to add a button to the application controller above, we could add `ib_outlet :my_button`.
After you've added this, you can run `rake ib:update` and your outlet will be available in interface builder that 
you can now hook up to your UI button.

== Building your application

To build your application, Rucola provides a simple rake command.  (You can also build your application in XCode)

    rake xcode:build

(Or simply use `rake` since xcode:build is the default task.)
This will compile and run your application.  At the moment we don't bundle Ruby or the gems that you are using 
in your application, we have plans to support this in order to make it really easy to distribute your application.

== Extras

Browse the git repo online at: http://github.com/alloy/rucola/tree/master

The latest version can be checked out with:

    $ git clone git://github.com/alloy/rucola.git

Sample apps can be found at (old svn repo):

    $ svn co svn://rubyforge.org/var/svn/rucola/extras/examples/

There's a basic TextMate bundle which contains only 4 commands which are the equivalent of the "go to file" commands in 
the rails bundle. With these going from a controller to it's test/model/view file is only a shortcut away. To get it:

    $ cd ~/Library/Application\ Support/TextMate/Bundles/
    $ svn co svn://rubyforge.org/var/svn/rucola/extras/Rucola.tmbundle

There's a crash reporter plugin and a ActiveRecord plugin available, which you can install with script/plugin install. 
Use script/plugin list to see the ones available.