Help us understand the problem. What is going on with this article?

.rubocop.yml設定例

概要

うちのチームで使っている.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'

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away