Created: 2008-12-30 10:52
Updated: 2017-01-28 21:14


These are modularized Rails application templates. The templates can be used on their own but more powerful app generation is possible through the app_lego.rb template.


  • modular structure
  • uses git, every module makes a separate commit
  • guiding questions or options through the LEGOS environment variable


The simplest way to use the template is to just provide the URL of app_lego.rb to the rails app generator and answer the questions.

$ rails -m my_app

The options and modules can be passed in through the LEGOS environment variable. If this is set the generator won't ask whether it should use braid and which modules it should use.

Listing all the available options and modules:

$ LEGOS="braid,basic,rspec,haml,jquery,auth,couchdb,locale,misc" rails -m my_app



App LEGO can use Braid to manage vendor branches. If braid is selected all plugin calls will install through braid, but if it's not plugin calls will use the default script/plugin installer.


The basic module initializes the Rails application in a git repository, removes unnecessary files and directories, sets up .gitignore files and freezes Edge Rails.

The RSpec module remove the test directory and installs the plugins necessary for RSpec. It also runs the rspec generator.

The Haml module initializes the app for Haml and Compass. Sass files for Compass are installed in app/stylesheets and it uses the Blueprint css library. Other modules take care of generating haml template files if haml was installed.

The jQuery module removes the default javascript files and installes jQuery, jQuery-UI and the jQuery Form plugin. The first two come with minified and full versions too.

The Auth module adds the AuthLogic gem and generates a UserSession model for it with an optional user model. The name of the user model and the user identifier can be given in the USER_MODEL and USER_IDENT environment variables.

The CouchDB module installs the CouchRest gem and the BasicModel plugin.

The locale module will download localization files from Sven Fuchs' rails-i18n repository. The generator will ask for the list of the localizations the user wants, but it can be given through the LOCALES environment variable too. The list is comma separated, and where no extension is given .yml is assumed. The first locale in the list will be used as the default locale. Example:

$ LOCALES='hu,de,nl.rb' LEGOS='locale' rails -m my_app

The locale module also checks for module specific localizations in locales/ under the same path App LEGO was called from.

The misc module inserts miscellaneous files into the application. These include a basic application_controller.rb, some helpers, a basic layout with flashes taken care of and some initializers.

So far this is all. Feel free to fork the repository and send me pull requests if you find out something cool.


I borrowed some ideas from Jeremy McAnally's rails-templates repository.

App LEGO is licensed under the MIT License.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more