Suspenders
¶ ↑
Suspenders is the base Rails application used at thoughtbot.
Installation¶ ↑
First install the suspenders gem:
gem install suspenders
Then run:
suspenders projectname
This will create a Rails 4.0 app in projectname
.
By default this script creates a new git repository. See below if you want to use it against an existing repo.
Gemfile¶ ↑
To see the latest and greatest gems, look at Suspenders' templates/Gemfile_clean, which will be appended to the default generated projectname/Gemfile.
It includes application gems like:
-
Airbrake for exception notification
-
Bourbon for Sass mixins
-
Delayed Job for background processing
-
Email Validator for email validation
-
Flutie for
page_title
andbody_class
view helpers -
High Voltage for static pages
-
jQuery Rails for jQuery
-
Neat for semantic grids
-
Postgres for access to the Postgres database
-
Rack Timeout to abort requests that are taking too long
-
Recipient Interceptor to avoid accidentally sending emails to real people from staging
-
Simple Form for form markup and style
-
Unicorn to serve HTTP requests
And gems only for staging and production like:
-
New Relic RPM for monitoring performance
-
Rails 12 Factor to making running Rails 4 apps easier on Heroku
And testing gems like:
-
Capybara and Capybara Webkit for integration testing
-
Factory Girl for test data
-
RSpec for unit testing
-
RSpec Mocks for stubbing and spying
-
Shoulda Matchers for common RSpec matchers
-
Timecop for testing time
Other goodies¶ ↑
Suspenders also comes with:
-
Override recipient emails in staging environment.
-
Rails' flashes set up and in application layout.
-
A few nice time formats set up for localization.
Heroku¶ ↑
You can optionally create Heroku staging and production apps:
suspenders app --heroku true
This has the same effect as running:
heroku create app-staging --remote staging heroku create app-production --remote production
Git¶ ↑
This will initialize a new git repository for your Rails app. You can bypass this with the --skip-git
option:
suspenders app --skip-git true
Github¶ ↑
You can optionally create a Github repository for the suspended Rails app. It requires that you have Hub on your system:
curl http://hub.github.com/standalone -sLo ~/bin/hub && chmod +x ~/bin/hub suspenders app --github organization/project
This has the same effect as running:
hub create organization/project
Dependencies¶ ↑
Suspenders requires Ruby 1.9.2 or greater.
Some gems included in Suspenders have native extensions. You should have GCC installed on your machine before generating an app with Suspenders.
Use OS X GCC Installer for Snow Leopard (OS X 10.6).
Use Command Line Tools for XCode for Lion (OS X 10.7) or Mountain Lion (OS X 10.8).
We use Capybara Webkit for full-stack Javascript integration testing. It requires QT. Instructions for installing QT are here.
PostgreSQL needs to be installed and running for the db:create
rake task.
Issues¶ ↑
If you have problems, please create a Github Issue.
Contributing¶ ↑
Please see CONTRIBUTING.md for details.
Credits¶ ↑
Suspenders is maintained and funded by thoughtbot, inc.
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
License¶ ↑
Suspenders is Copyright © 2008-2013 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.