Setting up - How to make a SPA with Cape.JS and Rails
Table of Contents - Next Section
Check if you have required softwares:
$ ruby -v
$ rails -v
You need Ruby 2.2.2 or higher and Rails 5.0.0.rc1.
Create a Rails application skeleton:
$ rails new greeter -BT
The meaning of options:
-B
: Don’t run bundle install (--skip-bundle
)-T
: Skip test files (--skip-test
)
Remove these lines from the Gemfile
:
gem 'sass-rails', '~> 5.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks', '~> 5.x'
You can keep
coffee-rails
, jquery-rails
and turbolinks
.
We remove them in order to demonstrate that Cape.JS does not depend on jQuery.
Add these lines to the Gemfile
:
gem 'capejs-rails'
gem 'sass-rails', '~> 6.0.0.beta1'
gem 'sprockets', '~> 4.0.0.beta2'
gem 'sprockets-rails'
gem 'babel-transpiler'
gem 'bootstrap', '~> 4.0.0.alpha3'
We add
bootstrap
just in order to smarten up our pages.
Cape.JS doesn't depend on the Bootstrap.
$ bin/bundle
Edit app/assets/javascripts/application.js
so that its content becomes as follows:
//= require cape
//= require_tree .
We removed three lines that require jquery
, jquery_ujs
and turbolinks
.
Keep them if you kept jquery-rails
and turbolinks
on Gemfile
.
We didn't add
bootstrap
here, because we don't use any Bootstrap
plugins on this application.
$ rm app/assets/stylesheets/application.css
$ touch app/assets/stylesheets/application.scss
Add this line to app/assets/stylesheets/application.scss
:
@import "bootstrap";
This procedure is not necessary if you don't use Bootstrap.
$ touch config/initializers/generators.rb
Add these lines to config/initializers/generators.rb
:
Rails.application.config.generators do |g|
g.helper false
g.assets false
g.test_framework false
g.skip_routes true
end