こんにちは、Pocke です。今回 MeowCop に CLI 機能を追加したので記事にしました。
MeowCop とは
「全てのプロジェクトで有効に出来るCop」のみを集めたRuboCopの設定ファイルを提供するGemです。
RuboCop にはスペースの有無などを検出するStyle系のCopも数多く含まれていますが、それらのCopはプロジェクトによっては相性がよくない可能性があります。
MeowCopではそのようなCopを無効化し、バグを検出するようなCopのみを有効にした設定を提供しています。
CLI 機能とは
今回追加された CLI 機能では、新たに meowcop
コマンドが提供されます。
meowcop
コマンドでは現在 init
と run
の2つのアクションが提供されています。
Installation
CLI 機能は最新の MeowCop に含まれているため、最新の MeowCop をインストールする必要があります。
$ gem install meowcop
meowcop init
MeowCop を使い始める時、以前は手で .rubocop.yml
を編集する必要がありました。
ですが、meowcop init
コマンドを使用すると、.rubocop.yml
の初期化を自動で行うことが可能です。
$ meowcop init
Meow! .rubocop.yml has been created successfully.
$ cat .rubocop.yml
# To use the MeowCop gem.
inherit_gem:
meowcop:
- config/rubocop.yml
# Modify the version if you don't use MRI 2.1.
AllCops:
TargetRubyVersion: 2.1
# You can customize rubocop settings.
# For example.
# Style/FrozenStringLiteralComment:
# Enabled: true
# EnforcedStyle: always
meowcop run
通常 MeowCop を使用するには上記のように .rubocop.yml
を編集する必要があります。
ですが、meowcop run
コマンドを使用することで、一時的に MeowCop を適用した状態で RuboCop を走らせることが可能となります。
# デフォルトの設定で RuboCop が実行される
$ rubocop
# MeowCop の設定を使用した状態で RuboCop が実行される
$ meowcop run
# RuboCop にオプションを渡すことも可能です
$ meowcop run --format json
これにより、「ちょっと MeowCop を試してみたい」「RuboCop を導入していないプロジェクトだけど一回 Lint をかけてバグがないか見たい」などの場合に、MeowCop を簡単に試すことが可能となります。
まとめ
今回の CLI 機能の追加により、MeowCop を試すことが簡単になりました。
デフォルトの設定で RuboCop の警告がうるさくて導入を諦めてしまった方など、これを機に MeowCop を適用して RuboCop を導入してみてはいかがでしょうか?