RuboCopについて学習したので、学んだことをまとめました。
RuboCopとは
Rubocopとは、Rubyで書いたコードを規約に沿ってチェックしてくれ、簡単な修正もしてくれるツール。
使い方
- インストール
#gemでインストール
$ gem install rubocop
- 基本的な使い方
#現在のディレクトリ以下全てのRubyファイルをチェック $ rubocop #ファイルを指定 $ rubocop <ファイル名> #クォーテーションの種類を変えるなど簡単な所を自動修正 $ rubocop -a または --auto-correct # 4つのチェック規則の分類のうちLintだけを確認 $ rubocop -l または -lint
- 実行結果の見方(例)
$ rubocop #rubocopを実行 Inspecting 15 files #15個のファイルをチェック CCCCWCCWCCCCCCW #チェックしているファイルのうち何番目でどんなエラーが出たか Offenses: #ここから下に具体的なエラーの指摘 9-3.rb:1:1: C: Naming/FileName: The name of this source file (9-3.rb) should use snake_case. 15 file inspected, 5 offenses detected #15個検査したら5つ違反が見つかった
設定方法
- RuboCopには、Rubyスタイルガイドに基づいて、事前に設定されたルールのセットが付属している。プロジェクトによっては、ルールを再構成したり、特定のファイルを無視したり、無効にしたりすることができる。
- RuboCopの動作を変更する最も一般的な方法は、プロジェクトのルートディレクトリに名前を付けた構成ファイル
.rubocop.yml
を作成すること。 - RuboCopにデフォルトで設定されているコーディング規約は厳しいらしく、そのまま使う人は少ないとのこと。
設定ファイルを作る設定方法は2つ
- 既にある
.rubocop.yml
を開いて設定を変更する。 .rubocop.yml
を新しく作成しプロジェクトルートに配置する。
設定ファイルを新しく作成する
- 既存の
.rubocop.yml
を見つけられなかったので、ここでは2の方法をまとめておく。 - 私の場合はRails 本家のコーディング規約を適用した。
wget
コマンドは何もオプションをつけないと出力先が標準出力=画面への出力になるので、オプションかリダイレクトを使ってファイルに保存する必要がある。
$ cd <プロジェクトルート> #プロジェクトルートに移動 $ touch .rubocop.yml #設定ファイルを新規作成 $ curl https://raw.githubusercontent.com/rails/rails/master/.rubocop.yml > .rubocop.yml #rails本家のコード規約をダウンロードして.rubocop.ymlファイルへ出力
エラーへの対処法
- 上記を実行後、ターミナルでRuboCopを使おうとすると、以下のエラーが出る。
cannot load such file — rubocop-performance cannot load such file — rubocop-rails
- Rails本家からコピペしてきたコード規約の中身を見ると、一番上に以下の表記がある。
require:
- rubocop-performance
- rubocop-rails
- この2つもgemなので、プロジェクトルートにインストールする
$ cd <プロジェクトルート> #プロジェクトルートに移動 $ gem install rubocop-performance #2つをインストール $ gem install rubocop-rails
- これで新しいコード規約でRuboCopを使えるようになったはずなので、
vim .rubocop.yml
で設定を編集する。
VScodeでRuboCopを使う方法
エラーへの対処法
- インストール直後、プロジェクトルートでRubyのファイルを編集していると、以下のエラーが出る
rubocop is not excutable #rubocopは実行可能ではありません execute path is empty! please check ruby.rubocop.executePath #実行パスが空です
- rubocopの実行パスが空なので、
which
コマンドでパスを確認する。
$ which rubocop /Users/<ユーザ名>/.rbenv/shims/rubocop
- VScodeの左下の
⚙
マーク→「設定」→「Ruby-Rubocop configuration」へ - 設定ファイルとrubocopのパスを追記する
- rubocopのパスは、
/Users/<ユーザ名>/.rbenv/shims/rubocop
と書くとエラーになるので注意
- rubocopのパスは、
- これでVScodeで使えるようになる。
使い方
規約に違反しているところには二重線「=」が出るので、カーソルを合わせると違反の内容が表示される。