Total Pageviews

Sunday, 4 September 2016

Rails Startup template

A startup template for Ruby on Rails 4 applications。

This is a template I use for my new Ruby on Rails 4 applications. Pull requests are welcome.
Also check out Startup Readings.

How to Use
rails new [app_name] -m

What it does
  1. Adds the following gems:
    • analytics-ruby: I use as an anaytics provider. 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.
    • CanCan: CanCan is an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access.
    • (Optional) haml-rails: HAML is a beautiful templating language. I prefer it over ERB.
    • 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: 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: I use Capybara to write integration tests and simulate user behavior.
    • (test environment) factory_girl_rails: FactoryGirl provdes a flexible alternative to Rails fixtures.
    • (production environment) rails_12factor: This is needed for deploying Rails 4 applications on Heroku.
  2. Sets up foreman to deal with environment variables and background services. Instead of using rails s you should use foreman s. Add your own environment variables in the .env file.
  3. Cleans up assets by renaming application.css to application.css.scss and removing the include_tree directives. It's better design to import and require things manually. For example, @import 'bootstrap';
  4. Optionally installs Twitter bootstrap.
  5. Optionally installs Font Awesome.
  6. Initializes a new git repository with an initial commit.
  7. Optionally create a github repository。