Rubocop × RubyMineで、リアルタイムにコードをチェックしよう!

はじめに

こんにちは! スタメンのシュール (@shule517) です。

RuboCop って便利ですよね!

僕はRubyを書き始めた頃に、「君の書いたコードはRubyっぽくない。Rubocopを入れると良いよ!」とアドバイスをもらってから、ずっと愛用しています。RubocopはRubyの一般的な書き方を教えてくれたり、もっと効率の良い書き方を教えてくれるので、Rubyを学ぶ中でとても頼りになりました。

そんな僕のRubyの師匠(?)でもある Rubocop について紹介します!

Rubocopとは?

Rubocopの指摘例

Rubocopは、RubyのコードをチェックしてくれるGemです。
上の例だとロケットハッシュ { :key => 1234 } はRubyの古い構文なので、書き換えてね! と指摘されています。

Rubyのコーディングスタイルで有名な「Ruby Style Guide」を基準に、ルール違反した書き方をしていると指摘してくれます。また、「Rails Style Guide」を元にRailsに特化したルールまでチェックしてくれます。チェックしてくれるルールは、400以上あります。詳しくは公式マニュアルで!

Rubyを始めたばかりの人には、Rubyの書き方を勉強するためのヒントに。プロジェクトでRubyを使ってる人には、コーディング規約をプロジェクトに浸透させるために。
個人で開発している人にも、プロジェクトで使う人にも、おすすめです!

Rubocopを導入してみる

Gemをインストールする

ターミナルで gem install rubocop を実行する。

Rubocopのインストール

Rubocopを実行してみる

rubocop と実行すると、現在ディレクトリ配下のコードをチェックしてくれます。

Rubocopの実行結果

ハッシュの書き方がルールと違うよ!と4箇所指摘されています。
この方法だとコマンドを実行するのが手間なので、次はRubyMineと連携してみましょう!

RubocopをRubyMineと連携しよう!

RubyMineと連携すると、コードを書いた瞬間にRubocopの指摘が表示されるようになります。コマンドを手動で実行しなくても良く、その場でコードを修正できるので、とても便利です!

RubyMineでRuboCopを有効にする

RubyMineのPreferencesメニューを開きます。[Editor → Inspections] の Rubocop を有効にしてください。

RubyMineでRuboCopを有効にする

RubyMineのエディタにコードを書くと、リアルタイムでRubocopの指摘が表示されるようになりました。 連携完了です! どんどんコードを書いていきましょう!

Rubocop × RubyMineの連携完了!

Rubocopの指摘を自動修正しよう!

AutoCorrect機能を使うと、指摘内容を自動で修正してくれます。この機能がかなり強力で、大半の指摘は自動修正が可能です。Rubocopを導入した時点で大量のエラーがあると、手動で修正するのはとても大変なので、自動修正していきましょう!

rubocop -a ファイル名 で、指定したファイルの指摘内容を自動修正できます。
※-a は、 –auto-correct の略です。

指摘内容を自動修正!

いろんな書き方のハッシュが全て同じ書き方に統一されました!
←が修正前 →が修正後のコードです。

コードの書き方が統一された!

さいごに

最後まで読んでいただいて、ありがとうございました!
次は、実際のプロジェクトにRubocopを導入した時の体験談について書こうと思います!

エラーが多すぎる問題(3.8万件のエラー)

プロジェクトにRubocopを導入した時点では、大量のエラーが出てビビリました。。。 プロジェクトにRubocopを浸透させていくまでの方針や、工夫。 Siderの導入について書こうと思います!

次回もお楽しみに〜!