Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

付録B RuboCop

RuboCop は、Ruby のコードを静的に確認するためのツールです。

本編では、Web アプリケーションの仕組みを理解することを優先したため、RuboCop は扱いませんでした。自分のアプリケーションを提出物や公開物として整える段階で、Ruby コードの書き方を確認するために使います。

RuboCop で分かること

RuboCop は、例えば次のような点を指摘します。

  • インデント
  • 空行
  • 使っていない変数
  • 長すぎる行
  • 条件分岐の書き方
  • Ruby の一般的なスタイル

RuboCop は、アプリケーションが正しく動くことを保証するツールではありません。HTTP メソッド、PRG、XSS 対策、JSON 保存が正しいかは、本文で学んだように動作確認と Network タブでも確認します。

導入例

RuboCop を使う場合は、Gemfile に開発用の gem として追加します。

group :development do
  gem "rubocop", require: false
end

追加したら、依存関係をインストールします。

bundle install

実行するときは、Bundler 経由で実行します。

bundle exec rubocop

指摘を読む

RuboCop の指摘は、機械的にすべて自動修正すればよいものではありません。

特に初学者のうちは、次の順で確認します。

  1. どのファイルの何行目を指摘しているか。
  2. 何が問題だと言っているか。
  3. 自分のコードをどう直すと読みやすくなるか。
  4. 直したあともアプリケーションが動くか。

自動修正を使う場合も、差分を確認します。

bundle exec rubocop -A

-A は強い自動修正です。予想より大きな変更が入ることがあります。実行後は、git diff で何が変わったかを必ず確認してください。

本文の学習とは役割が違う

RuboCop は、Ruby コードの形を整える助けになります。

一方で、次のようなことは RuboCop だけでは判断できません。

  • POST 後にリダイレクトしているか。
  • PATCHDELETE が method override で届いているか。
  • 利用者入力を表示時にエスケープしているか。
  • data/movies.jsonpublic/ に置いていないか。

コードを整えることと、Web アプリケーションとして正しく動くことは別の観点です。両方を確認します。