Bakeware is the base Rails application (usually) used at ovenbits.
Installation
First install the bakeware gem:
gem install bakeware
Then run:
bakeware projectname
This will create a Rails 3.2 app in projectname
. This script creates a
new git repository. It can also optionally create 2 new heroku apps.
It is not meant to be used against an existing repo.
Bakeware comes in two modes: lean, and meaty.
Lean Mode
This is the default mode. Comes with
- Airbrake for exception notification
- haml for haml - because we should all use it
- newrelic_rpm for analytics about the performance of your app
- pg for PostgreSQL
- rack-timeout for killing a zombie process
As well as some other development tools (like pry-rails, better_errors, binding_of_caller).
Meaty Mode
You can optionally opt for Meaty mode:
bakeware projectname --meaty true
This comes with:
- Airbrake for exception notification
- asset_sync syncing assets between rails and s3
- aws-sdk for the amazon sdk
- challah for simple and effective authentication
- challah-facebook extends Challah for FB authentication
- Compass for Sass mixins and standardization
- haml for haml - because we all should use it
- hirefireapp for auto scaling dynos on heroku
- newrelic_rpm for analytics about the performance of your app
- Paperclip for file uploads
- pg for PostgreSQL
- rack-timeout for killing your app's hung processes before heroku times out (set to 29 seconds)
- redis for redis
- resque for resque background processing
- Unicorn for a better http server
Testing
Bakeware also comes with testing gems, including (but not limited to):
- Factory Girl for test data
- mocha for mocking and stubbing
- simplecov for testing coverage analytics
- Timecop for testing time
- turn for better test reporting
We don't use RSpec often, and even less often do we use minitest. So manually include those if you want.
Other goodies
Bakeware also comes with:
- Override recipient emails in staging environment.
- Rails' flashes set up and in application layout.
- Heroku-recommended asset pipeline settings.
Heroku
You can optionally create Heroku staging and production apps:
bakeware projectname --heroku true
This has the same effect as running:
heroku create projectname-staging --remote staging
heroku create projectname --remote production
Github
You can optionally create a Github repository:
bakeware projectname --github organization/project
This has the same effect as running:
hub create organization/project
To create a private repo, pass the --private true
option:
bakeware projectname --github organization/project --private true
Test::Unit
You can optionally skip Test::Unit files:
bakeware projectname --skip_test_unit true
Dependencies
Bakeware requires Ruby 1.9.3 or greater.
Some gems included in Bakeware have native extensions. You should have GCC installed on your machine before generating an app with Bakeware.
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).
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
Bakeware is maintained and funded by Oven Bits and Court Simas.
The names and logos for Oven Bits are trademarks of Oven Bits
License
Bakeware is Copyright © 2013 Oven Bits. It is free software, and may be redistributed under the terms specified in the LICENSE file.