2021-09-27・RuboCopとは・RuboCopの導入方法と使い方、読み方の紹介はじめに今回はRubyのコードを解析して可能なところは自動で修正してくれる静的解析ツール「RuboCop」の紹介です。一人だとコードは最低限読めれば良いレベルで収まってしまうのですが、こういったツールを使うと自動で解析して読みづらい箇所とか、使ってはいけないアンチパターン的なものを教えてくれるので非常に便利です。RuboCopとはRuboCopとは、Rubyのコードがコーディング規約に沿っているかを確認できる「静的コード解析ツール(コーディングチェックツール)」の1つです。コーディング規約はプロジェクトによって違うのでRuboCopでまかり通るかは微妙ですが下記のような極々一般的な部分をチェックして教えてくれます。インデント文字数の長さ条件式のスペースの使い方コメントの有無デフォルトだと使いづらい部分はカスタマイズ可能であり、規約の追加・削除が可能です。installを行うだけです。require:false今回、ターミナルからRuboCopのコマンドを呼ぶため「require:false」を付けています。install」コマンドを実行して追加します。導入方法でも記載した通り、今回はターミナルからRuboCopコマンドを実行します。Railsプロジェクト上で「rubocop」を実行すればプロジェクト内にあるファイルをチェックしてくれます。-A」コマンドを実行すると対象のファイルで修正可能なものは自動で修正してくれます。試しに教材を学習していく際に作成したプロジェクトに対して「rubocop」コマンドを実行してみました。すると、60ファイルの中で230個の違反が検出されました。-A」コマンドで自動修正可能です。RuboCopの出力結果の読み方一例ここではRuboCopが検知した違反の内容の一部を紹介します。Layout/IndentationWidthインデント幅に対する内容です。デフォルトだとインデントには半角スペース2つが推奨されているためそうなっていない部分は検知されます。indentation.Layout/SpaceBeforeBlockBracesブロックの前後にスペースが無いことに対する内容です。(下記は「{」の左側にスペースが無いと言われています。{.Layout/TrailingEmptyLinesファイルの最後に改行が無いことに対する内容です。comment.Ruby2.3以降(Ruby3未満)では、文字列リテラルは違うオブジェクトとして扱われます。その文字列リテラルを変更出来ないようにする(frozen)コメントを1行目に入れてくださいと言われています。下記コメントを1行目に入れてくださいと言われています。trueStyle/Documentationクラスを作成した際、最初の行にコメントを入れてくださいと言われています。