3
2

More than 5 years have passed since last update.

コーディング規約管理のgem「RuboCop」を導入してみた

Last updated at Posted at 2016-10-18

環境

Ruby: 2.1.0
Rails: 4.1.5
RuboCop: 0.43.0

RuboCopってなに?

RubyのGemです。
設定したコーディング規約(後述)通りプログラムが書かれているかチェックします。
さらには自動で修正ができます。

どうしてコーディング規約が必要なの?

  • プログラムの可読性を上げるため
  • プログラムの品質を上げるため

どうやってインストールするの?

以下のコマンドを入力します。
※ バージョンはプロジェクトに合わせて変更してくださいね。

$ gem install 'rubocop' -v='0.43.0'

どうやって使うの?

以下のコマンドを入力します。
設定したコーディング規約(後述)に反している箇所を表示します。

$ rubocop

以下のようにファイル名を記入することで、そのファイルのみチェックができます。

$ rubocop Test.rb

規約に合わせて自動修正する場合は、以下のコマンドを入力します。

$ rubocop --auto-correct
$ rubocop -a # alias

他にも色々とオプションがあります。(が、割愛)

規約はどう設定するの?

主に以下の4ファイルで設定します。

default.yml # 規約の定義が書かれている
enabled.yml # デフォルトで有効なcopが書かれている
disabled.yml # デフォルトで無効なcopが書かれている
.rubocop.yml # 有効/無効を上書きする

前者3ファイルはrubocopディレクトリ内のconfig配下に、
.rubocop.ymlはroot配下に自分で作成します。

.rubocop.ymlの設定例

まずは方針をば。
今回導入したプロジェクトでは、Performanceのcopのみを有効にしました。
理由は以下の2つ。

  1. コーディング規約に全て目を通すのが大変
  2. 全てのcopを有効にすると、警告がわんさか出る

小さく始めて徐々に増やす作戦です、はい。
※ この作戦がうまく行くかは、また改めて書くかも...。

さて、.rubocop.ymlの具体的な設定例です。

  1. enabled.ymlを複製して、.rubocop.ymlにリネーム
  2. 各設定のEnabled: trueEnabled: falseに置き換える
  3. Performanceの部分を全て削除

手順2で何をしたかというと、
enabled.ymlに書かれている有効なcopを、全て無効で上書きしています。

手順3では、Performanceの項目を削除することで、無効を解除しています。

これからどう運用するの?

  1. .rubocop.ymlに載っているcopのリファレンスを読む
  2. 有効/無効を判断する
  3. 有効なら.rubocopから削除. 無効なら残す
  4. 1~3を繰り返す

参考文献

RuboCopの設定アレコレ
RuboCopをRailsオプションやLintオプションで使ってみよう

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2