rubocopについて
rubocopとは
Rubyの静的コード解析を実行するgem。
(コードの内容を精査するgem)
基本的な使い方
Gemfileに「gem 'rubocop'」を記入。 # ここからターミナルを使う。 bundle install bundle exec rubocop
関連ファイル
.rubocop.yml
RuboCopの設定ファイルです。対象となるファイルの種類だったり、チェックする構文のデフォルトを変えたりと,自分たちのコーディングスタイルに沿った現実的なルールをこのファイルで適用します。
.rubocop_todo.yml
あまりに警告が多い時に$ rubocop --auto-gen-configを実行することによって自動生成され、警告内容を全てこのファイルに一旦退避することができます。それ以降は退避された警告は無視されます。
以下の記事を引用。
自分がPFで使用したrubocopの使い方
ここからどのようにして自分がrubocopのエラーをゼロにしたか記載していく。
①rubocop --auto-correct #このコマンドで自動修正してくれる。(エラーが多すぎる時に使用。) ②rubocop --auto-gen-config #.rubocop_todo.ymlを作成し、そこに全ての警告をいったん移す。 #(こうすることで$ rubocopを実行しても今の段階では全ての警告は無視される。) ③rubocop.ymlの以下のコードを消す。 inherit_from: .rubocop_todo.yml #上記コマンドで自動で記述される ④その後、rubocop.ymlに以下の文を記入。(自分の場合) # 自動生成されたファイルを対象外にする AllCops: Exclude: - 'Gemfile' - 'node_modules/**/*' - 'bin/*' - 'db/**/*' - 'config/**/*' - 'test/**/*' - 'spec/**/*' # Missing magic comment # frozen_string_literal: true. を無視 Style/FrozenStringLiteralComment: Enabled: false # "Missing top-level class documentation comment."を無効 Style/Documentation: Enabled: false #下記の設定をすることでStyle/ClassAndModuleChildren: Use nested module/class definitions instead of compact style.がなくなる。 Style/ClassAndModuleChildren: Enabled: false # Metrics/AbcSizeのMaxを30に設定。 # これでAssignment Branch Condition size for search is too high.のエラーがなくなる。 Metrics/AbcSize: Max: 30 # CountComments を true, Max を 25に設定。 # これでMethod has too many lines.のエラーがなくなる。 MethodLength: CountComments: true Max: 25
上記をして、rubocopのエラーをゼロにした。
参考
RuboCop導入後の設定カスタマイズ方法 | Enjoy IT Life
【Rails】Rubocopを使ってコーディング規約に準拠させる方法 | vdeep
RuboCopでこんなエラーが出た。Assignment Branch Condition size for search is too high. - Qiita
RuboCop | Style/MethodLength - Qiita