Suspenders
Posted by Dan Croak
Oct 21
Introducing Suspenders, the thoughtbot Rails template.
Install
To create a new project, checkout the github repository and run:
./script/create_project projectname |
This will create a project in ../projectname. You should then follow the instructions on Github to upload that project there. This script creates an entirely new git repository, and is not meant to be used against an existing repo.
Changes to the template can be easily pulled it into your project via:
rake git:pull:suspenders |
This is funny, because you’re pulling your suspenders.
About
Suspenders was created for use at thoughtbot as a baseline application setup, with reasonable default plugins that the majority (if not all) of our applications used, as well as best-practice configuration options.
Thanks to various Boston.rb people and rails rumble people for attempting to use suspenders this past weekend and giving it it’s first non-thoughtbot-internal usage.
Suspenders currently includes Rails 2.1.1
vendor/gems

- mislav-will_paginate
- RedCloth
- mocha
- thoughtbot-factory_girl
- thoughtbot-shoulda
- quietbacktrace
vendor/plugins
- hoptoad_notifier
- limerick_rake
- mile_marker
- squirrel
- helper_test
config/initializers
- time_formats.rb (Two time formats are available by default, :short_date and :long_date)
- action_mailer_configs.rb (We use SMTP by default in all applications)
- hoptoad.rb (Get your API key at http://hoptoadapp.com)
- requires.rb (automatically requires everything in:)
- lib/
- lib/extensions
- test/mocks/RAILS_ENV (Removed in Rails 2, we decided to keep it)
Rake Tasks
Rake tasks are contained in the limerick_rake gem.
- bootstrap (Provides rake tasks for loading data into the database. These are used for an initial application dataset needed for production.)
- capistrano (Standard capistrano deployment tasks)
Testing
The basic test setup uses Test::Unit, Shoulda, factory_girl, and mocha, and includes some standard “shoulda macros” that we’ve used on various projects.
Factory Girl is a fixture replacement library, following the factory pattern. Place your factories in test/factories.rb. The fixture directory has been removed, as fixtures are not used.
Shoulda is a pragmatic testing framework for TDD and BDD built on top of Test::Unit. A number of additional testing macros are provided in test/shoulda_macros:
Deployment
Deployment is done using capistrano, and deploys to a mongrel cluster, running under Apache.
Rake tasks are provided for managing git branches which the different environments pull from for deploy.
To push the git master to git staging branch run:rake git:push:staging |
rake git:push:production |
cap ENVIRONMENT deploy:setup |
You’ll be prompted for the environment’s database password
Deploy to the desired environment by running:cap ENVIRONMENT deploy |
cap deploy |
Mascot
The official Suspenders mascot is Suspenders Boy
Comments on this post
Oct 21
carlisia said,
Thank you guys for providing this. It was very useful for my railsrumble project. I wish it will accept ’-’ in the project name the future. :)
Oct 21
Nathan said,
Good stuff, replaces my script that just installs all your plugins anyway :)
Oct 22
Jim Neath said,
Good work chaps.
Sorry, comments are closed for this article.
© 2000 - 2009 by thoughtbot, inc.
written by a bushel of tiny robots
Come “ride the toad” on Hoptoad, the app error app.
Thunder Thimble: Brand monitoring for social media.
Widgetfinger: Simple content management for simple websites.
Tee-Bot, funny shirts your friends won't understand!
Umbrella Today: “It’s like totally the simplest weather report ever, Julie.”
Thoughtbot
thoughtbot is a technology consulting firm that provides web application development and design services. We focus on building modern systems, embracing good ideas and delivering elegant solutions.
Interested in learning Rails?
Sign up for our beginning or advanced training.
Archives