public
Description: Merb More: The Full Stack. Take what you need; leave what you don't.
Homepage: http://www.merbivore.com
Clone URL: git://github.com/wycats/merb-more.git
jnicklas (author)
Wed Jul 23 18:50:36 -0700 2008
commit  24984703c7261fbd197d9567df8b4fa9e62f8ba8
tree    2ca44e776e5ea26a0a6de6ef875750cda7bd137e
parent  fa90b11c79f3049824af724dd68eacbdb678de34
merb-more / merb-freezer
name age message
..
file LICENSE Tue Apr 08 21:56:26 -0700 2008 moved the generated frozen merb script to merb-... [mattetti]
file README Fri Jun 27 04:32:32 -0700 2008 Merge branch 'new_merb_gen' into testing [jnicklas]
file README.markdown Sat May 03 17:34:08 -0700 2008 bump merb-more versions to 0.9.3 [ezmobius]
file Rakefile Mon Jul 21 16:07:21 -0700 2008 Resolved conflict in merb-freezer. [michaelklishin]
file TODO Fri Jun 27 04:09:20 -0700 2008 moved the generated frozen merb script to merb-... [mattetti]
directory bin/ Fri Jun 27 04:32:32 -0700 2008 Merge branch 'new_merb_gen' into testing [jnicklas]
directory lib/ Wed Jul 23 18:50:36 -0700 2008 fixed pesky merge conflicts [jnicklas]
directory spec/ Wed Jul 23 18:50:36 -0700 2008 fixed pesky merge conflicts [jnicklas]
README.markdown

merb-freezer

This plugin lets you freeze Merb and run it using the frozen gems.

Why would you want to freeze Merb?

  • You might have multiple applications on the same server/slice/cluster. Different applications might require different versions of Merb.

  • You might work with a team of developers and want everyone to be using the same Merb version.

  • You are using Merb Edge, you want to make sure the production server and your co workers are developing/testing against the same revision.

What are your options?

  • You just want to lock your app to a specific version. For instance version merb-core 0.9.3

  • You only want to use frozen gems located in /framework or /gems

How to lock your app?

TODO

How to use frozen gems

Instead of starting merb by typing "merb" in your console, type "frozen-merb" and that's it :) If frozen-merb can't find frozen gems in /framework or /gems then Merb will start normally using the system's gems.

You can also specify the path to use to start your frozen app by passing --merb-root or -m argument and the path to your app. (for god/monit scripts for instance)

How to freeze your gems?

In your init.rb file, require this plugin.

require 'merb-freezer'

You now get a new set of rake tasks:

rake freeze:core            # Freeze core from git://github.com/wycats/merb...
rake freeze:more            # Freeze more from git://github.com/wycats/merb...
rake freeze:plugins         # Freeze plugins from git://github.com/wycats/m...

You can freeze components using 2 modes, Git Submodules or rubygems:

rake freeze:core MODE=rubygems

or rake freeze:core MODE=submodules (default mode)

Wait, that's not it, you can also update your frozen gems using UPDATE=true:

rake freeze:core UPDATE=true

What about your other gems? Same thing, you can do:

rake freeze:gem GEM=merbful_authentication

or

rake freeze:gem GEM=git://github.com/ivey/merb-for-rails.git