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 app in projectname
using the latest version of Rails.
Gemfile¶ ↑
To see the latest and greatest gems, look at Suspenders' Gemfile, which will be appended to the default generated projectname/Gemfile.
It includes application gems like:
-
Airbrake for exception notification
-
Bourbon for Sass mixins
-
Bitters for scaffold application styles
-
Delayed Job for background processing
-
Email Validator for email validation
-
Flutie for and
body_class
view helper -
High Voltage for static pages
-
jQuery Rails for jQuery
-
Neat for semantic grids
-
New Relic RPM for monitoring performance
-
Normalize for resetting browser styles
-
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
-
Title for storing titles in translations
-
Unicorn to serve HTTP requests
And development gems like:
-
Dotenv for loading environment variables
-
Pry Rails for interactively exploring objects
-
ByeBug for interactively debugging behavior
-
Spring for fast Rails actions via pre-loading
And testing gems like:
-
Capybara and Capybara Webkit for integration testing
-
Factory Girl for test data
-
Formulaic for integration testing HTML forms
-
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:
-
The {
./bin/setup
} convention for new developer setup -
Rails' flashes set up and in application layout
-
A few nice time formats set up for localization
-
Rack::Deflater
to compress responses with Gzip -
An automatically-created
SECRET_KEY_BASE
environment variable in all environments. -
Configuration for Travis Pro continuous integration.
-
The analytics adapter Segment.io (and therefore config for Google Analytics, Intercom, Facebook Ads, Twitter Ads, etc.).
Heroku¶ ↑
You can optionally create Heroku staging and production apps:
suspenders app --heroku true
This:
-
Creates a staging and production Heroku app
-
Sets them as
staging
andproduction
Git remotes -
Configures staging with
RACK_ENV
andRAILS_ENV
environment variables set tostaging
-
Adds the Rails 12 Factor gem to make running Rails 4 apps easier on Heroku
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 the latest version of Ruby.
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¶ ↑
To update Suspenders' Ruby version, change .ruby-version
and .travis.yml
.
Please see CONTRIBUTING.md for further 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-2014 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.