re-rails¶ ↑
re-rails is a customized version of {Suspenders}[https://github.com/thoughtbot/suspenders]the base Rails application used at thoughtbot.
Installation¶ ↑
From Ruby-Gems¶ ↑
First install the re-rails gem:
gem install re-rails
Then run:
re-rails 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.
From Source¶ ↑
First Clone the repo
git clone git@github.com:re-analytics/re-rails.git
or
hub clone re-analytics/re-rails
then cd into the directory and run rake build
Gemfile¶ ↑
To see the latest and greatest gems, look at re-rails’ templates/Gemfile_clean, which will be appended to the default generated projectname/Gemfile.
It includes application gems like:
-
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
-
Cancan for authorization
-
Devise for authentication And gems only for staging and production like:
-
New Relic RPM for monitoring performance
-
Rails 12 Factor to make 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¶ ↑
re-rails 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
re-rails fixes several of Rails’ insecure defaults:
-
re-rails uses Unicorn instead of WEBrick, allowing less verbose Server headers.
-
re-rails is configured to pull your application secret key base from an environment variable, which means you won’t need to risk placing it in version control.
Heroku¶ ↑
You can optionally create Heroku staging and production apps:
re-rails 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
Git¶ ↑
This will initialize a new git repository for your Rails app. You can bypass this with the --skip-git
option:
re-rails 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 re-rails app --github organization/project
This has the same effect as running:
hub create organization/project
Dependencies¶ ↑
re-rails requires Ruby 1.9.2 or greater.
Some gems included in re-rails have native extensions. You should have GCC installed on your machine before generating an app with re-rails.
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¶ ↑
re-rails is based off Suspenders which is maintained and funded by thoughtbot, inc.
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
License¶ ↑
Licensed Under MIT