読者です 読者をやめる 読者になる 読者になる

SideCI Blog

継続的インテグレーションツール(CI)のSideCIが運営しています。コード品質向上や生産性向上など、ソフトウェアエンジニアに役立つCI全般について記事を投稿しています。

RuboCopを使い始めよう! RuboCop導入に最適な設定、MeowCopをリリースしました!

こんにちは、RuboCop大好きpockeです! 先日RuboCopの設定用のGem、MeowCopをリリースしましたのでお知らせいたします。

RuboCop のデフォルト設定は使いづらい

今回このGemをリリースした背景には、RuboCopのデフォルト設定が扱いづらいことが上げられます。

RuboCopは数多くのルールを提供しています。 そして、そのルールの多くはデフォルトの設定で有効となっています。 これにより、特に何も設定しなくてもRuboCopは多くの項目を検証してくれます。

ですが、裏を返すとRuboCopは自分で設定をしない場合大量のwarningsを出力してしまいます。 このような状況はRuboCopを導入する際の大きな障壁となるでしょう。

何故大量のwarningsが出てしまうのか

では、何故大量のwarningsが出てしまうのでしょうか。 その答えは、RuboCopがRubyコードのスタイルをチェックする、という点にあります。

コーディングスタイルは人、会社、プロジェクトによって様々な物が存在します。 そのため、汎用的なツールであるRuboCopのデフォルト設定だと、各プロジェクトに適合した設定にはなっておらず、結果として大量のwarningsが発生してしまいます。

スタイルの問題を指摘しない、という解決策

この問題を解決するのがMeowCopです。

MeowCopは、コーディングスタイルに関するルールなど、プロジェクトごとに変わってくるルールを無効化します。 また、バグに繋がるようなコードやパフォーマンス上の問題など、スタイルに関するルール以外は有効になっています。 これにより、大量のwarningsに悩まされることなくRuboCopを有効に導入することが可能です。

また、MeowCopを導入後にスタイルに関するルールを有効にしたい場合、.rubocop.yml内で設定を上書きすることが可能です。

インストール方法

以下のコマンドでgemをインストールするか

$ gem install rubocop meowcop

以下のコードをGemfileに書き加えることでインストールが可能です。

gem 'rubocop', require: false
gem 'meowcop', require: false

また、.rubocop.ymlに下記のコードを加える必要があります。 もし.rubocop.ymlが存在しない場合、新たに作成して下さい。

inherit_gem:
  meowcop:
    - config/rubocop.yml

この状態でrubocopコマンドを実行すると、MeowCopの設定が適用された状態で実行されます。

まとめ

MeowCopを使用することで、RuboCopを導入する際にどのプロジェクトでも使えるルールのみから始めることが可能です。
RuboCopを導入したいけど、スタイルガイドに沿った設定ファイルを作るのが大変な場合は試してみてはいかがでしょうか?

また、SideCIでも今すぐご利用いただくことが可能です。 なお、SideCI上でRuboCopを実行する際、.rubocop.ymlが存在しないリポジトリに対してはMeowCopの設定を適用してRuboCopを実行するようになっています。