Rails Startup template
This is a template I use for my new Ruby on Rails 4 applications. Pull requests are welcome.
How to Use
rails new [app_name] -m rails_startup_template/template.rb
What it does
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_passwordfunctionality. 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 syou should use
foreman s. Add your own environment variables in the
Cleans up assets by renaming
application.css.scssand removing the
include_treedirectives. It's better design to import and require things manually. For example,
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.