Generated with Raygun.
To run the specs or fire up the server, be sure you have these installed (and running):
- Ruby 2.2 (see .ruby-version).
- PostgreSQL 9.x (
brew install postgresql
) with superuser 'postgres' with no password (createuser -s postgres
). - PhantomJS for Capybara and Javascript testing (
brew install phantomjs
).
After cloning,
# set up your environment; edit .env where appropriate
$ cp .env.example .env
# install missing gems and prepare the database
$ bin/setup
Note, rake db:sample_data
loads a small set of data for development. Check out
db/sample_data.rb for details.
To run all Ruby and Javascript specs.
$ ./bin/rake
Note: ./bin/rake
runs the springified version of rake (there's a ./bin/rspec
and ./bin/rails
too). You
can add ./bin
to your PATH too, then you'll always use the springified bins when they exist. See
rails/spring for additional information.
$ foreman start
$ open http://localhost:3000
- Branch
development
is auto-deployed to acceptance. - Branch
master
is auto-deployed to production. - Create feature branches off of
development
using the naming convention(features|chores|bugs)/a-brief-description-######
, where ###### is the tracker id. - Rebase your branch before merging into
development
to produce clean merge bubbles. - Retain merge commits for multi-commit branches when merging into
development
(e.g.git merge --no-ff branchname
). - Craft atomic commits that make sense on their own and can be easily cherry-picked or reverted if necessary.
Generally speaking, follow the Ruby Style Guide. Additionally, these are other guidelines adopted by the team:
Always use double quotes for test/spec descriptions, unless the subject is a class/module.
describe SomeController do
context "when logged in as an admin" do
describe "#some_method" do
it "does some thing"
end
end
end
Coverage for the ruby specs:
$ COVERAGE=true rspec
Code coverage is reported to Code Climate on every CI build so there's a record of trending.
Guard is configured to run ruby and jasmine specs, and also listen for livereload connections.
$ bundle exec guard
$ gem install mailcatcher
$ mailcatcher
$ open http://localhost:1080/
Learn more at mailcatcher.me. And please don't add mailcatcher to the Gemfile.
This project is configured for continuous integration and deployment with Travis CI and Heroku.
Check out .travis.yml and bin/deploy.sh for details.
Acceptance and Production are hosted on Heroku under the [email protected] account.
Several common features and operational parameters can be set using environment variables.
Required
SECRET_KEY_BASE
- Secret key base for verfying signed cookies. Should be 30+ random characters and secret!RAKISMET_URL
- Anti-spam: Your "site" URL, such ashttp://yourdomain.com/
. Required by Akismet.RAKISMET_KEY
- Anti-spam: Your Akismet API key. You can find this in your "Account Overview" section. https://akismet.com/account/
Optional
HOSTNAME
- Canonical hostname for this application. Other incoming requests will be redirected to this hostname.BASIC_AUTH_PASSWORD
- Enable basic auth with this password.BASIC_AUTH_USER
- Set a basic auth username (not required, password enables basic auth).PORT
- Port to listen on (default: 3000).PUMA_WORKERS
- Number of puma workers to spawn (default: development 1, otherwise 3).MIN_THREADS
- Minimum threads per worker (default: 4).MAX_THREADS
- Maximum threads per worker (default: 16).
- Heroku for hosting.
- Travis CI for continuous integration and deployment.