状況

・Ruby on Railsのインストール
・TDD環境をセットアップ

インストールするバージョン

macOS Sierra

Homebrew 1.1.6
=> macのパッケージ管理マネージャー
=> Rubyなどに限らず、様々なパッケージの導入が簡単にな
http://brew.sh/index_ja.html

rbenv 1.1.0
=> rubyのバージョン管理マネージャー
=> rubyの複数バージョンをインストールでき、切り替えも簡単
https://github.com/rbenv/rbenv

Ruby 2.4.0
https://www.ruby-lang.org/ja/

bundler
=> gemの管理マネージャー
http://bundler.io

MySQL 5.6
https://www-jp.mysql.com

Git 2.11.0
https://www-jp.mysql.com

Rails 5.0.1

RSpec
=> gem
=> テストフレームワーク

FactoryGirl

Rubocop
=> gem
=> コーディングルールの準拠チェックをしてくれるGem

Guard
=> gem
=> RSpecやRubocopの起動を自動化する

インストール手順

Homebrewのインストール

インストールコマンド

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

rbenvのインストール

インストールコマンド

$ brew install rbenv

PATHの設定

# .bash_profileファイルを開く
$ vim ~/.bash_profile

# .bash_profileに下記を記述
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

# 環境のリロード
$ source ~/.bash_profile

# 設定が正しいかチェックする
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

参考:https://github.com/rbenv/rbenv#installation

Rubyのインストール

インストールするバージョンの確認

$ rbenv install -l

インストールコマンド

$ rbenv install 2.4.0

インストールしたバージョンの適用

$ rbenv global 2.4.0
$ rbenv rehash

インストールしたバージョンの確認

$ rbenv versions
備考:複数バージョンのインストールと切り替え

# Rubyインストールリストの更新
$ brew upgrade ruby-build

# インストール
$ rbenv install -l
$ rbenv install [バージョン]

# アンインストール
$ rbenv uninstall [バージョン]

# インストールしたバージョンの適用
$ rbenv global [バージョン]
 #=> mac全体に適用する場合に選択する

$ rbenv local [バージョン]
 #=> 特定のRailsプロジェクトなどに適用する場合に選択する
 #=> 事前に指定したいRailsプロジェクトに移動しておく

# リフレッシュ
$ rbenv rehash

# インストールされているバージョンの確認
$ rbenv versions

bunderのインストール

インストールコマンド

$ rbenv exec gem install bundler

※ 「rbenv exec」を付けることで、rbenvで適用されているRubyのgemを明示的に実行している

MySQLのインストール

brewの検索

$ brew search mysql

MySQLのインストール

$ brew install mysql@5.6

バージョンを確認

$ mysql --version

起動

$ mysql.server start

# 停止の場合
$ mysql.server stop

MySQLのセキュリティ設定

$ mysql_secure_installation

Gitのインストール

インストール

$ brew update
$ brew install git

Gitのバージョン確認

$ git --version

Tigのインストール

CUIのGitブラウザ

インストール

$ brew install tig

bash-completionのインストール

CUIのGitコマンド入力を補完してくれる

インストール

$ brew install bash-completion

.bash-profileを開く

$ vim ~/.bash_profile

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

Gitの設定

$ git config --global user.name "[user_name]"
$ git config --global user.email "[user_email_address]"
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
$ git config --global push.default simple
$ git config --global core.precomposeunicode true
$ git config --local core.precomposeunicode true
$ git config --global core.quotepath false
$ git config --global core.editor 'vim -c "set fenc=utf-8"'

設定情報の確認

$ git config --list

Railsのインストール

インストールコマンド

$ gem install rails

※ バージョンを指定しない場合、最新バージョンがインストールされる
※ 実行場所はどこでも可

Railsプロジェクトの作成

$ cd [railsプロジェクトを作成したい場所へ移動]
$ rails new [project_name] -d mysql -B

※ 「-d mysql」は使用するデータベースをMySQLに指定している(デフォルトではSQLite)
※ 「-B」でbundle installをスキップしている(後ほどまとめて行うため)

TDD環境設定(RSpecのインストール)

Gemfileを開く

$ vim Gemfile

Gemfileに下記を追記する

group :development, :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
  gem 'guard'
  gem 'guard-rspec'
  gem 'terminal-notifier-guard'
end

gemのインストール

$ bundle install --path vendor/bundle --without prodcution --jobs=4

RSpec初期化

$ bundle exec rails generate rspec:install

.rspecを開く

$ vim .rspec

フォーマットとカラーを設定

--format documentation
--color

spec_helper.rbを開く

$ vim spec/spec_helper.rb

下記の設定を追記する

require 'rubygems'
require 'spork'

Spork.prefork do
end

Spork.each_run do
end

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
require 'factory_girl'

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
Dir[Rails.root.join("spec/models/concerns/**/*.rb")].each { |f| require f }

RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  # config.use_transactional_fixtures = true
  config.infer_base_class_for_anonymous_controllers = false
  config.order = 'random'
  config.before :all do

  FactoryGirl.reload
  end
end

Guardの初期化

$ bundle exec guard init rspec

Guardの起動

$ bundle exec guard

※上記コマンドでguardを立ち上げておくと、specファイルまたは、specファイルに関連付けされたファイルを保存するときに自動的にテストが実行される