Sakiのプログラミング学習ブログ

プログラミングについて学んだことや、学習の振返りを書いています。

RuboCopの使い方とVScodeへの導入方法まとめ

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を作成すること。
    • プロジェクトルートとは、プロジェクトにおけるルートディレクト
    • 例えば、ホームディレクトリの直下にrubybookというディレクトリを作って、そこにrubyのファイルを作って作業をしていて、そこでrubocopを使いたい →この場合~/rubybook/がプロジェクトルートなので、ここに.rubocop.ymlを作る。
  • RuboCopにデフォルトで設定されているコーディング規約は厳しいらしく、そのまま使う人は少ないとのこと。

設定ファイルを作る設定方法は2つ

  1. 既にある.rubocop.ymlを開いて設定を変更する。
  2. .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を使う方法

f:id:Saki-Htr:20200515145458p:plain

  1. VScodeを開く
  2. 左下のマーク→「拡張機能」へ
  3. 「インストール」をクリック

エラーへの対処法

  • インストール直後、プロジェクトルートで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と書くとエラーになるので注意

f:id:Saki-Htr:20200515150031p:plain - これでVScodeで使えるようになる。

使い方

規約に違反しているところには二重線「=」が出るので、カーソルを合わせると違反の内容が表示される。

f:id:Saki-Htr:20200515145544p:plain

参考記事