.rubocop.yml
の自動生成ツール Gry をリリースしましたのでお知らせいたします。
Gry とは?
Gry は RuboCop の設定ファイル(.rubocop.yml
)の自動生成ツールです。
Gry を使用することで、プロジェクトのソースコードを解析し、そのプロジェクトに最適な.rubocop.yml
を自動で生成することが可能です。
これにより、従来手作業で行っていた.rubocop.yml
の作成作業にかかる時間を大幅に削減することが可能となります。
そして、RuboCopをよりプロジェクトに沿った形で使用することが可能となります。
インストール
Gry は Gem として提供されているため、以下の様にgem
コマンドでインストールを行って下さい。
$ gem install gry
尚、Gry は RuboCop の記事執筆時点での最新バージョン(v0.47.1)に依存しています。
そのためこれより古い RuboCop をお使いの場合は、最適な.rubocop.yml
が生成されない可能性があります。RuboCop のアップデートをお試しください。
使い方
Gry の使用方法は単純で、必要なことは以下の2ステップのみとなります。
.rubocop.yml
を生成したい対象のディレクトリへ移動gry
を実行
実行するとgry
は標準出力へ生成した.rubocop.yml
を書き出します。
$ cd your/project/path $ gry AllCops: TargetRubyVersion: 2.3 Rails: Enabled: true # EnforcedStyle: outdent => 15 offenses # EnforcedStyle: indent => 0 offense Style/AccessModifierIndentation: EnforcedStyle: indent Enabled: true # EnforcedStyle: with_first_parameter => 12 offenses # EnforcedStyle: with_fixed_indentation => 2 offenses Style/AlignParameters: EnforcedStyle: with_fixed_indentation Enabled: true # EnforcedStyle: is_a? => 0 offense # EnforcedStyle: kind_of? => 10 offenses Style/ClassCheck: EnforcedStyle: is_a? Enabled: true # .....
この出力を設定として使用する場合には出力を.rubocop.yml
へと貼り付けるか、gry >> .rubocop.yml
のようにして実行する必要があります。
なお、Gry の実行にはある程度の時間が必要であり、またプロジェクトのコード量が多くなるほどより時間が必要となります。
まとめ
このように、Gry を使用することで.rubocop.yml
を設定する時間を大幅に削減することが出来るでしょう。
いくつかのプロジェクトで実際に Gry を試したところ、20個ほどの Cop の設定を自動で生成することが可能でした。
また、以前弊社でリリースした MeowCop と Gry は直行する概念であるため、合わせてご利用頂くことが可能です。
もしよければ MeowCop のご利用もご検討下さい。
リリース記事: RuboCopを使い始めよう! RuboCop導入に最適な設定、MeowCopをリリースしました! – SideCI Blog