This simple application includes ruby/rails technology which we use in the FlatStack for new projects. Application currently based on Rails 3.2 stable branch and Ruby 1.9
- Less Rails dynamic stylesheet language for asset pipeline
- Less Rails Bootstrap for styling app with Twiter Bootstrap
- Slim for views
- Simple Form for forms
- Decent Exposure for DRY controllers
- Kaminari for pagination
- Devise for basic auth
- Airbrake for exception notification
- Thin as rails web server
- Foreman for managing development stack with Procfile
- Letter Opener for preview mail in the browser instead of sending
- Mail Safe keep ActionMailer emails from escaping into the wild during development
- Bullet gem to kill N+1 queries and unused eager loading
- Rails Best Practices code metric tool
- Brakeman static analysis security vulnerability scanner
- Turnip, Capybara, and Capybara Webkit for integration testing, including JavaScript behavior
- Factory Girl for easier creation of test data
- RSpec for awesome, readable isolation testing
- Shoulda Matchers for frequently needed Rails and RSpec matchers
- Email Spec Collection of rspec matchers and cucumber steps for testing emails
01_config.rb
- shortcut for getting application config withapp_config
mailer.rb
- setup default hosts for mailer from configurationtime_formats.rb
- setup default time formats, so you can use them like object.create_at.to_s(:us_time)requires.rb
- automatically requires everything in lib/ & lib/extensions
script/bootstrap
- setup required gems and migrate db if neededscript/quality
- runs brakeman and rails_best_practices for the appscript/ci
- should be used in the CI, checkout .travis.yml for examplescript/ci_deploy
- should be used in Semaphoreapp CI to deploy code to Heroku
Clone application as new project with original repository named "rails3-base"
git clone git://github.com/fs/rails3-base.git --origin rails3-base [MY-NEW-PROJECT]
Create your new repo on GitHub and push master into it. Make sure master branch is tracking origin repo.
git remote add origin git@github.com:[MY-GITHUB-ACCOUNT]/[MY-NEW-PROJECT].git
git push -u origin master
Run bootstrap script
script/bootstrap
Make sure all test are green
bundle exec rspec spec
Run app
foreman start
You can fetch latest changes from rails3-base repo and merge or cherry-pick commits
git fetch rails3-base
git flow feature start rails3-base-update
git merge rails3-base/master
# fix conflicts
# commit
# test
git flow feature finish rails3-base-update
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send a pull request. Bonus points for topic branches.