rubocop-rails 2.35.0 → 2.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 409bf447cc0d5a3b6529407611f53ad1331a5c1bd908e35b7f50193e53bb2c95
|
|
4
|
+
data.tar.gz: 5d3b83383d138616bcfbbe292413f6ddd6f49b60be33dbe57fdcd481bb7d1c1c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea50f3fad3d83f62ec110dd0a5b32688f92fcd0963d486714e4a71867343316b67842476f67dd64a5c6d7ccde5f43aeca5c1980ec20e96f097703fdf6ad7c15c
|
|
7
|
+
data.tar.gz: eb75cb4c5b5a21562ff42dd194fea691e2feec9563095a1a1509b3263a41693ce072a075a269e1416c8f150cf201a602e2301ac1d993dc7a237c3bbe19083d04
|
|
@@ -12,7 +12,7 @@ module RuboCop
|
|
|
12
12
|
# which can affect their behavior.
|
|
13
13
|
#
|
|
14
14
|
# @safety
|
|
15
|
-
# This cop is unsafe
|
|
15
|
+
# This cop is unsafe because false positives will occur if the receiver is not an Active Record object.
|
|
16
16
|
#
|
|
17
17
|
# @example
|
|
18
18
|
# # bad
|
|
@@ -8,7 +8,8 @@ module RuboCop
|
|
|
8
8
|
# In the following cases, `params[:key]` is treated as a key that is expected to be passed from the HTTP client,
|
|
9
9
|
# and the cop detects it using the `expect` method.
|
|
10
10
|
#
|
|
11
|
-
# - Method calls on `params[:key]` without comparison methods
|
|
11
|
+
# - Method calls on `params[:key]` without comparison methods, methods that are safe to call
|
|
12
|
+
# on `nil` (such as `to_i`, `to_s`, or `is_a?`), or key-check methods such as `key?`
|
|
12
13
|
# - Passing `params[:key]` as an argument to finder methods that raise on missing records
|
|
13
14
|
# - Strong parameter methods using `require` or `permit`
|
|
14
15
|
#
|
|
@@ -54,6 +55,8 @@ module RuboCop
|
|
|
54
55
|
MSG = 'Use `%<prefer>s` instead.'
|
|
55
56
|
RESTRICT_ON_SEND = %i[[] require permit].freeze
|
|
56
57
|
PRESENCE_CHECK_METHODS = %i[nil? blank? present? presence].freeze
|
|
58
|
+
NIL_SAFE_METHODS = %i[instance_of? is_a? kind_of? to_a to_f to_h to_i to_s].freeze
|
|
59
|
+
KEY_CHECK_METHODS = %i[key? has_key? include? member?].freeze
|
|
57
60
|
RAISING_FINDER_METHODS = %i[find find_by! find_sole_by].freeze
|
|
58
61
|
|
|
59
62
|
minimum_target_rails_version 8.0
|
|
@@ -131,9 +134,13 @@ module RuboCop
|
|
|
131
134
|
return false unless parent.call_type?
|
|
132
135
|
|
|
133
136
|
if parent.receiver == node
|
|
134
|
-
return false if parent.comparison_method?
|
|
137
|
+
return false if parent.comparison_method? || parent.method?(:[])
|
|
135
138
|
|
|
136
|
-
|
|
139
|
+
method_name = parent.method_name
|
|
140
|
+
|
|
141
|
+
!PRESENCE_CHECK_METHODS.include?(method_name) &&
|
|
142
|
+
!NIL_SAFE_METHODS.include?(method_name) &&
|
|
143
|
+
!KEY_CHECK_METHODS.include?(method_name)
|
|
137
144
|
else
|
|
138
145
|
raising_finder_method?(parent)
|
|
139
146
|
end
|