This is a template I use for my new Ruby on Rails 4 applications. Pull requests are welcome.
rails new [app_name] -m rails_startup_template/template.rb
- Adds the following gems:
- analytics-ruby: I use segment.io as an anaytics provider. Segment.io is easy to integrate, asynchronous, and forwards data to other providers like Mixpanel and Kissmetrics.
- bcrypt-ruby: I usually implement authentication myself instead of using gems like Devise. This is needed for the
has_secure_password
functionality. See API Doc. - bourbon: Bourbon provides useful SASS mixins for cross-browser compatibility.
- (Optional) haml-rails: HAML is a beautiful templating language. I prefer it over ERB.
- [simple_form]((https://github.com/plataformatec/simple_form): SimpleForm makes it easy to build complex form using simple markup.
- uuidtools: To generate UUIDs, which is useful for various things.
- [rspec-rails]((https://github.com/rspec/rspec-rails): Rspec is a testing tool for test-driven and behavior-driven development. It makes writing specs more enjoyable.
- guard-rspec: Guard for automatically launching your specs when files are modified.
- (test environment) [capybara]((https://github.com/jnicklas/capybara): I use Capybara to write integration tests and simulate user behavior.
- (test environment) [factory_girl_rails]((https://github.com/thoughtbot/factory_girl): FactoryGirl provdes a flexible alternative to Rails fixtures.
- (production environment) [rails_12factor]((https://devcenter.heroku.com/articles/rails-integration-gems): This is needed for deploying Rails 4 applications on Heroku.
-
Sets up foreman to deal with environment variables and background services. Instead of using
rails s
you should useforeman s
. Add your own environment variables in the.env
file. -
Cleans up assets by renaming
application.css
toapplication.css.scss
and removing theinclude_tree
directives. It's better design to import and require things manually. For example,@import 'bootstrap';
-
Optionally installs Twitter bootstrap.
-
Optionally installs Font Awesome.
-
Initializes a new git repository with an initial commit.
Here are some things I'd like to add:
- Optionally create a github repository. That sould be done by asking for username/password and issuing a curl API call.