Milkshake

Milkshake allows you to compose rails apps from several other rails apps specially packed as gems.

Creating a host application

To create a new host application you must use the create.host command.

$ milkshake create.host my_host_applications
Rails app successfully created!
Rails app successfully cleaned!
Milkshake successfully installed!
Rails app successfully stripped!
$ ls my_host_applications
config db log public script tmp

The most important part of the host application is the config/milkshake.yml file.

gems:
  my-gem:
    version: 0.2.38
    lib:     my_gem
    source:  http://www.github.com

After changing the milkshake.yml or updating some gems you must touch tmp/relink.txt and restart your app server (touch tmp/restart.txt for passenger).

Creating a gem application

Gem applications can be packaged as gems and can be linked back into host applications.

$ milkshake create.gem my_gem_applications
#   anwser the questions milkshake asks you

Installation

#   you need gemcutter first
$ sudo gem install gemcutter
$ sudo gem tumble
#   then just install milkshake
$ sudo gem install milkshake

Wish list

  • link rake tasks from [gem path]/lib/tasks (is this needed?)

  • migrate down when removing (or downgrading) a gem.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2009 Simon Menke. See LICENSE for details.