LoginSignup
152
147

More than 5 years have passed since last update.

.rubocop.yml設定例

Last updated at Posted at 2014-07-03

概要

うちのチームで使っている.rubocop.ymlの設定内容を公開します。

設定内容

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に移動すると思います。

rubocop-todo.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'

未検証ですが<<や+を使って文字列の連結を行うよりも早く動作するはずです。

152
147
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
152
147