🤖

rubocopでコードスタイルの自動修正をする

2024/10/20に公開

開発環境

  • macOS
  • VSCode
  • Rails 7.1.3.3
  • ruby-3.2.3
  • PostgreSQL 16.2
  • Heroku

行いたいこと

  • rubocopを導入しコードスタイルの自動修正をする。
  • この実装は本来Rails 7.2 アプリケーションに自動的に組み込まれるが、以前のバージョンで実装したため追加実装をしていきます。

(実装手順はこちらです)
https://github.com/rails/rubocop-rails-omakase






Gemfileに追記しインストールする

Gemfileに追記してbundle install

Gemfile
gem "rubocop-rails-omakase", require: false, group: [ :development ]

・続けてターミナルで以下のコマンドを実行(ファイルとコードが生成される)

ターミナル
bundle binstubs rubocop

bin/rubocopファイルが生成され以下のコードが追加される

bin/rubocop
#!/usr/bin/env ruby
# frozen_string_literal: true

#
# This file was generated by Bundler.
#
# The application 'rubocop' is installed as part of a gem, and
# this file is here to facilitate running it.
#

ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)

bundle_binstub = File.expand_path("bundle", __dir__)

if File.file?(bundle_binstub)
  if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
    load(bundle_binstub)
  else
    abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
  end
end

require "rubygems"
require "bundler/setup"

load Gem.bin_path("rubocop", "rubocop")

.rubocop.yml ファイルを作成しコードを追記する

・アプリケーションのルートに.rubocop.ymlファイルを追加し、以下のコードを記載する。

.rubocop.yml
# Omakase Ruby styling for Rails
inherit_gem:
  rubocop-rails-omakase: rubocop.yml

# Your own specialized rules go here


ここまででrubocopの導入は完了です。






コードのスタイルチェック と 自動修正

・コードのスタイルチェック

ターミナル
./bin/rubocop

⇩実行結果
Image from Gyazo

・自動修正

ターミナル
./bin/rubocop -a

⇩実行結果
Image from Gyazo






GitHubで編集を提案

Discussion