概要
うちのチームで使っている.rubocop.ymlの設定内容を公開します。
設定内容
inherit_from: rubocop-todo.yml
# 日本語でのコメントを許可
AsciiComments:
Enabled: false
# 複数行での「lambda」で「->」による省略記法を許可
Lambda:
Enabled: false
# モジュール名::クラス名の定義を許可
ClassAndModuleChildren:
Enabled: false
# メソッド名のprefixに「set_」「get_」を許可
AccessorMethodName:
Enabled: false
# クラスにコメントを残さない
Documentation:
Enabled: false
# 「and」「or」の使用を許可
AndOr:
Enabled: false
AllCops:
Exclude:
- db/schema.rb
- config/unicorn.rb
- config/unicorn_staging.rb
- tmp/**/*
AndOrを無効にしているのは、「redirect_to xxxx and return」という風に1行に纏めたかったからです。
通常のif文ではand,orは使っていません。
ちなみにrubocop-todo.ymlはこのような感じになっています。
少しずつ直していっていますが、対応が難しいものは.rubocop.ymlに移動すると思います。
# ネストが深すぎる
BlockNesting:
Max: 5
# クラスの行数が多すぎる
ClassLength:
Enabled: false
# 循環的複雑度が高すぎる(ifやforなどを1メソッド内で使いすぎている)
CyclomaticComplexity:
Enabled: false
# 例外を抑制している
HandleExceptions:
Enabled: false
# 行が長すぎる
LineLength:
Enabled: false
# メソッドの行数が多すぎる
MethodLength:
Enabled: false
# 引数の数が多すぎる
ParameterLists:
Max: 12
おまけ
Jenkinsへの表示
Jenkinsにrubocopの実行結果を表示したかったので'rubocop-checkstyle_formatter'というGemを使っています。
シェルの実行で、
bundle exec rubocop --require rubocop/formatter/checkstyle_formatter --format RuboCop::Formatter::CheckstyleFormatter --out test/reports/checkstyle.xml
とし、Checkstyle警告の集計でtest/reports/checkstyle.xml
を指定すれば、
rubocopの指摘がJenkinsに表示されるようになります。
長文のリテラルを分割して1行を短くする
\改行
を使えば、文字列中に改行を含めずに改行することができます。
hoge='1111111111111111111111111111111111111'\
'2222222222222222222222222222222222222222'\
'3333333333333333333333333333333333333333'
未検証ですが<<や+を使って文字列の連結を行うよりも早く動作するはずです。