RuboCopのMetrics/CyclomaticComplexityについて

photo credit: gremionis via photopin cc

コーディング規約に対応していなかった既存のRailsプロジェクトをRuboCopでチェックしている。RuboCop(コーディング規約)を通じて、既存のRailsプロジェクトへの理解も深まるので一石二鳥である。その中でrubocop -a/--auto-correctで対応されない指摘について、内容把握のために以下に記載する。

概要

RuboCopのMetrics/CyclomaticComplexityの指摘は、循環的複雑度が6を超えていないかどうかをチェックしている。

循環的複雑度とは?

循環的複雑度 – Wikipedia

循環的複雑度(英: Cyclomatic complexity)とは、ソフトウェア測定法の一種である。Thomas McCabe が開発したもので、プログラムの複雑度を測るのに使われる。プログラムのソースコードから、線形的に独立した経路の数を直接数える。

というもの。

RuboCop Metrics/CyclomaticComplexityのデフォルト値

有効(enable)で、6になっている。

以下の通り、循環的複雑度が6を超えていないかどうかをチェックしている。

RuboCop Metrics/CyclomaticComplexityのチェック内容

参考情報

Ruby Style Guideの該当する箇所はない