はじめに
お疲れさまです!
おおくまです!
以前、私はrubocopを現在実装中のアプリに導入しました!
(その際の記事はこちら【Rails】rubocop導入手順の備忘録)
しかし!
それからというもの、いつもたま〜にrubocopを通すのを忘れてしまいます!笑
そこで!
commitすると自動でrubocopを通してくれる便利な機能があることを知りました!
今回はその設定方法の備忘録になります!
環境
Ruby 3.2.2
Rails 7.0.8
注意点
私はプログラミング学習中で、初学者です。
内容に誤りがある場合があります。
コメント等で教えていただけると幸甚です。
実装
今回使用するツールは、lefthookというツールです!
これはGitフック管理ツールの1つで、特定のGitイベント(コミット前、プッシュ前、マージ前など)が発生したときに自動的に実行されるスクリプトやコマンドを管理してくれます!
brew install lefthook
まずはlefthookをインストールします!
lefthook install
次に設定したいアプリのディレクトリでこのコマンドを実行します!
このコマンドを実行すると、lefthook.yml
ファイルが作成されます!
pre-commit:
parallel: true
commands:
rubocop:
run: bundle exec rubocop
今回は「commitと同時に自動でrubocopを通す」設定になるので、このように記述します!
lefthook add pre-commit
記述できたら、このコマンドでファイル内容を反映させます!
設定は以上になります!
動作確認をしてみましょう!
git commit -m "テスト"
╭──────────────────────────────────────╮
│ 🥊 lefthook v1.5.0 hook: pre-commit │
╰──────────────────────────────────────╯
┃ rubocop ❯
Inspecting 37 files
....C................................
Offenses:
app/controllers/application_controller.rb:1:1: C: [Correctable] Style/FrozenStringLiteralComment: Missing frozen string literal comment.
app/controllers/application_controller.rb:2:1: C: [Correctable] Layout/LeadingEmptyLines: Unnecessary blank line at the beginning of the source.
class ApplicationController < ActionController::Base
^^^^^
37 files inspected, 2 offenses detected, 2 offenses autocorrectable
────────────────────────────────────
summary: (done in 3.19 seconds)
🥊 rubocop
指摘があるとこのように表示されるみたいですね!
修正して、再度commitしてみます!
git commit -m "テスト"
╭──────────────────────────────────────╮
│ 🥊 lefthook v1.5.0 hook: pre-commit │
╰──────────────────────────────────────╯
sync hooks: ✔️ (pre-commit)
┃ rubocop ❯
Inspecting 37 files
.....................................
37 files inspected, no offenses detected
────────────────────────────────────
summary: (done in 3.19 seconds)
✔️ rubocop
[develop 32d39ad] rubocop自動実行の設定
1 file changed, 5 insertions(+)
create mode 100644 lefthook.yml
今度は何も指摘されませんでした!
これからはrubocopを通すことを忘れずに済みそうです!
最後まで読んでいただきありがとうございました!