こんにちは、RuboCop大好きpockeです! 先日RuboCopの設定用のGem、MeowCopをリリースしましたのでお知らせいたします。
- GitHub: https://github.com/sideci/meowcop
- RubyGems: https://rubygems.org/gems/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を実行するようになっています。