config/rails.yml in rubocop-codetakt-0.8.3 vs config/rails.yml in rubocop-codetakt-0.82.0.0
- old
+ new
@@ -1,10 +1,60 @@
-inherit_gem:
- onkcop:
- - config/rails.yml
+require: "rubocop-rails"
+Rails:
+ Enabled: true
+
# Migrations are must not depend to the ApplicationRecord,
# because the AR is mutable.
# So each migration should be reproducible in the future.
Rails/ApplicationRecord:
Exclude:
- "db/migrate/*.rb"
+
+# ActiveRecord で association を安易に delegate すると
+# N+1 を起こしまくるので、なるべく delegate 的なメソッドを使わずに
+# コストが掛かっていることを自覚できるようにしておきたい。
+# メソッドでも危ういが、DSL だと更に意識から抜けるので無効に。
+Rails/Delegate:
+ Enabled: false
+
+# 意図せずに exit を書くこと無いでしょ?
+# 毎回 Exclude / rubocop:disable する方が手間。
+Rails/Exit:
+ Enabled: false
+
+# -File.join(Rails.root, "app", "models")
+# +Rails.root.join("app", "models")
+# はともかく
+# -Rails.root.join("app/models")
+# +Rails.root.join("app", "models")
+# は Pathname#plus が行っているので意味無いのでは?
+Rails/FilePath:
+ Enabled: false
+
+# 桁が揃わなくて気持ち悪い
+# create(:user, logged_in_at: 1.day.ago)
+# create(:user, logged_in_at: 2.days.ago)
+Rails/PluralizationGrammar:
+ Enabled: false
+
+# unless 文を使ってでも「空」を条件にした方が
+# 「存在する」よりも「空」の方が状態として特別なので
+# 脳内モデルと合致しやすい。
+Rails/Present:
+ Enabled: false
+
+# method_missing を隠したい場合は respond_to? を使うべき
+Rails/SafeNavigation:
+ ConvertTry: true
+
+# valid? チェックし忘れを防ぎたい
+Rails/SaveBang:
+ Enabled: true
+
+# staging 環境を使っているので追加
+Rails/UnknownEnv:
+ Environments:
+ - development # rubocop default.yml
+ - test # rubocop default.yml
+ - production # rubocop default.yml
+ - staging