付録C ERB Lint
ERB Lint は、ERB テンプレートを確認するためのツールです。
本編では、ERB の構造を読みながら、layout.erb と各ビューの役割を分けて学びました。ERB Lint は、そのようなテンプレートの書き方を機械的に確認する補助として使えます。
ERB Lint で分かること
ERB Lint は、設定によって次のような点を確認できます。
- ERB の構文
- HTML の構造
- インデント
- 不要な空白
- テンプレート内の Ruby コードの書き方
ただし、ERB Lint もアプリケーションの動作を保証するものではありません。フォーム送信、リダイレクト、エスケープ、404 は、実際に動かして確認します。
導入例
ERB Lint を使う場合は、Gemfile に開発用の gem として追加します。
group :development do
gem "erb_lint", require: false
end
追加したら、依存関係をインストールします。
bundle install
実行例です。
bundle exec erblint views
設定ファイルを用意する場合は、利用するルールをプロジェクトに合わせて決めます。最初から厳しすぎる設定にすると、テンプレートの理解よりも指摘対応が中心になってしまうことがあります。
RuboCop との違い
RuboCop は Ruby ファイルを中心に確認します。
ERB Lint は、ERB テンプレートを確認します。
映画図鑑で言えば、app.rb は RuboCop、views/index.erb や views/show.erb は ERB Lint の対象になります。
よく見る観点
ERB を確認するときは、ツールを使う前に次の点も自分で見ます。
layout.erbだけにhtml、head、bodyがあるか。- 各ビューに、その画面固有の中身だけが書かれているか。
- フォームの
labelと入力欄が対応しているか。 - 利用者入力を表示する箇所で
hヘルパーを使っているか。 - 紹介文の改行表示を Ruby で
<br>に変換していないか。
ツールは、読めるテンプレートを書くための補助です。ツールの指摘を消すことだけを目的にしないでください。