前提
- Rspec使う
- FactoryGirl使う
- sass使う
- haml使う
Bundlerのひな形ファイルを生成
$ mkdir blogapp
$ cd blogapp
$ bundle init
Gemfileをほしい形に直す
source "https://rubygems.org"
gem 'rails', '4.0.0'
gem 'turbolinks'
# Use ActiveModel has_secure_password
gem 'bcrypt-ruby', '~> 3.0.0'
#gem 'jbuilder', '~> 1.2'
gem "twitter-bootstrap-rails", "~> 2.2.8"
gem 'bootstrap-sass', '2.3.2.0'
gem 'jquery-rails'
group :assets do
gem 'sass-rails', '~> 4.0.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
gem 'haml-rails'
end
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :development do
gem 'erb2haml'
gem 'capistrano'
gem 'annotate', '2.5.0'
# deploy settings
gem 'capistrano'
gem 'capistrano-rails'
gem 'capistrano-rbenv'
gem 'capistrano-bundler'
end
group :development, :test do
gem 'sqlite3'
gem "rspec-rails", "~> 2.14.0"
gem "factory_girl_rails", "~> 4.2.1"
gem 'pry-rails'
gem 'pry-doc'
end
group :test do
gem "faker", "~> 1.1.2"
gem "capybara", "~> 2.1.0"
gem "database_cleaner", "~> 1.0.1"
gem "launchy", "~> 2.3.0"
gem "selenium-webdriver", "~> 2.35.1"
end
group :production do
gem 'pg', '0.12.2'
gem 'unicorn'
end
おもむろにbundle install
忘れずにpath指定!暫し待つ。。
$ bundle install --path vendor/bundle
Rails初期化
bundlerでのもろもろインストールが無事終わったら、この状態でRailsアプリを作成
さっき作ったアプリ名のディレクトリ内に居るはずなので、アプリ名は指定しないで.でOK
Rspecを使いたいのでデフォルトのtest::unitが組み込まれないように-Tも付ける。
$ bundle exec rails new . -T
Rspec使えるようにする
$ bundle exec rails g rspec:install
.rspecの設定を付け加える
.rspec
--format documentation
Rspecで自動生成させる対象を指定する
Rspec初心者なので、modelとcontrollerのテストだけ自動生成させるようにする。
FactoryGirl使う設定も忘れずに。
config/application.rb
config.generators do |g|
# Rspec settings
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
controller_specs: true,
request_specs: false
g.fixture_replacement :factory_girl, dir: "spec/factories"
end
設定続き
hamlとsass使いたいのでその設定もする。
config/application.rb
config.generators do |g|
g.template_engine :haml
end
config.sass.preferrd_syntax = :sass
config.sass.syntax = :sass
Hamlの設定
既存のerbをhamlに変換
$ bundle exec rake haml:convert_erbs
作ったばかりなので、app/views/layoutsの下にerbがあるだけ。
hamlになったので、いらない方消しとく。
$ rm app/views/layouts/application.html.erb
git
うぎゃーとなる前にvendor/bundle以下がリポジトリにはいらないようにしておく。
.gitignore
/vendor/bundle
$ git init
$ git add .
$ git commit -m "Initial commit"
確かめる
ちゃんと思った通りに設定されているか、scaffoldしてみる。
$ bundle exec rails g scaffold Page name:string content:text
ふう。やっと始められる。。
簡易ブログ作ってみよう。
参考書 : Everyday Rails… Aaron Sumnerによる et al. [Leanpub PDF/iPad/Kindle]
とっても良い本。勉強中。。