rubocop-rails 2.19.1 → 2.30.3

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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +70 -16
  4. data/config/default.yml +173 -28
  5. data/lib/rubocop/cop/mixin/active_record_helper.rb +16 -4
  6. data/lib/rubocop/cop/mixin/active_record_migrations_helper.rb +2 -2
  7. data/lib/rubocop/cop/mixin/database_type_resolvable.rb +66 -0
  8. data/lib/rubocop/cop/mixin/index_method.rb +68 -61
  9. data/lib/rubocop/cop/mixin/routes_helper.rb +20 -0
  10. data/lib/rubocop/cop/mixin/target_rails_version.rb +27 -2
  11. data/lib/rubocop/cop/rails/action_controller_flash_before_render.rb +3 -1
  12. data/lib/rubocop/cop/rails/action_controller_test_case.rb +2 -2
  13. data/lib/rubocop/cop/rails/action_filter.rb +3 -0
  14. data/lib/rubocop/cop/rails/action_order.rb +1 -5
  15. data/lib/rubocop/cop/rails/active_record_aliases.rb +2 -2
  16. data/lib/rubocop/cop/rails/active_record_callbacks_order.rb +1 -5
  17. data/lib/rubocop/cop/rails/active_support_aliases.rb +6 -5
  18. data/lib/rubocop/cop/rails/active_support_on_load.rb +21 -1
  19. data/lib/rubocop/cop/rails/add_column_index.rb +1 -0
  20. data/lib/rubocop/cop/rails/after_commit_override.rb +1 -1
  21. data/lib/rubocop/cop/rails/application_record.rb +4 -0
  22. data/lib/rubocop/cop/rails/assert_not.rb +0 -1
  23. data/lib/rubocop/cop/rails/belongs_to.rb +1 -1
  24. data/lib/rubocop/cop/rails/blank.rb +1 -1
  25. data/lib/rubocop/cop/rails/bulk_change_table.rb +19 -45
  26. data/lib/rubocop/cop/rails/compact_blank.rb +29 -8
  27. data/lib/rubocop/cop/rails/content_tag.rb +2 -2
  28. data/lib/rubocop/cop/rails/dangerous_column_names.rb +448 -0
  29. data/lib/rubocop/cop/rails/date.rb +14 -5
  30. data/lib/rubocop/cop/rails/delegate.rb +53 -7
  31. data/lib/rubocop/cop/rails/duplicate_association.rb +71 -10
  32. data/lib/rubocop/cop/rails/dynamic_find_by.rb +3 -3
  33. data/lib/rubocop/cop/rails/eager_evaluation_log_message.rb +2 -2
  34. data/lib/rubocop/cop/rails/enum_hash.rb +31 -8
  35. data/lib/rubocop/cop/rails/enum_syntax.rb +130 -0
  36. data/lib/rubocop/cop/rails/enum_uniqueness.rb +29 -7
  37. data/lib/rubocop/cop/rails/env_local.rb +69 -0
  38. data/lib/rubocop/cop/rails/expanded_date_range.rb +1 -1
  39. data/lib/rubocop/cop/rails/file_path.rb +186 -18
  40. data/lib/rubocop/cop/rails/find_by.rb +3 -3
  41. data/lib/rubocop/cop/rails/find_by_id.rb +9 -23
  42. data/lib/rubocop/cop/rails/find_each.rb +1 -1
  43. data/lib/rubocop/cop/rails/freeze_time.rb +1 -1
  44. data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +1 -1
  45. data/lib/rubocop/cop/rails/helper_instance_variable.rb +1 -1
  46. data/lib/rubocop/cop/rails/http_positional_arguments.rb +7 -0
  47. data/lib/rubocop/cop/rails/http_status.rb +16 -5
  48. data/lib/rubocop/cop/rails/i18n_lazy_lookup.rb +63 -13
  49. data/lib/rubocop/cop/rails/i18n_locale_texts.rb +5 -1
  50. data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +23 -3
  51. data/lib/rubocop/cop/rails/index_by.rb +28 -12
  52. data/lib/rubocop/cop/rails/index_with.rb +28 -12
  53. data/lib/rubocop/cop/rails/inquiry.rb +2 -1
  54. data/lib/rubocop/cop/rails/inverse_of.rb +1 -1
  55. data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +19 -10
  56. data/lib/rubocop/cop/rails/link_to_blank.rb +2 -2
  57. data/lib/rubocop/cop/rails/match_route.rb +1 -9
  58. data/lib/rubocop/cop/rails/multiple_route_paths.rb +50 -0
  59. data/lib/rubocop/cop/rails/not_null_column.rb +100 -6
  60. data/lib/rubocop/cop/rails/output.rb +3 -2
  61. data/lib/rubocop/cop/rails/pick.rb +10 -5
  62. data/lib/rubocop/cop/rails/pluck.rb +21 -1
  63. data/lib/rubocop/cop/rails/pluck_id.rb +2 -1
  64. data/lib/rubocop/cop/rails/pluck_in_where.rb +35 -13
  65. data/lib/rubocop/cop/rails/pluralization_grammar.rb +30 -16
  66. data/lib/rubocop/cop/rails/presence.rb +1 -1
  67. data/lib/rubocop/cop/rails/present.rb +1 -3
  68. data/lib/rubocop/cop/rails/rake_environment.rb +22 -6
  69. data/lib/rubocop/cop/rails/redundant_active_record_all_method.rb +190 -0
  70. data/lib/rubocop/cop/rails/redundant_foreign_key.rb +1 -1
  71. data/lib/rubocop/cop/rails/redundant_presence_validation_on_belongs_to.rb +16 -0
  72. data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +2 -2
  73. data/lib/rubocop/cop/rails/reflection_class_name.rb +2 -2
  74. data/lib/rubocop/cop/rails/refute_methods.rb +0 -1
  75. data/lib/rubocop/cop/rails/relative_date_constant.rb +1 -1
  76. data/lib/rubocop/cop/rails/render_plain_text.rb +6 -3
  77. data/lib/rubocop/cop/rails/request_referer.rb +1 -1
  78. data/lib/rubocop/cop/rails/response_parsed_body.rb +52 -10
  79. data/lib/rubocop/cop/rails/reversible_migration.rb +7 -5
  80. data/lib/rubocop/cop/rails/root_pathname_methods.rb +58 -15
  81. data/lib/rubocop/cop/rails/save_bang.rb +22 -14
  82. data/lib/rubocop/cop/rails/schema_comment.rb +17 -10
  83. data/lib/rubocop/cop/rails/select_map.rb +79 -0
  84. data/lib/rubocop/cop/rails/skips_model_validations.rb +9 -4
  85. data/lib/rubocop/cop/rails/squished_sql_heredocs.rb +1 -2
  86. data/lib/rubocop/cop/rails/strip_heredoc.rb +1 -1
  87. data/lib/rubocop/cop/rails/strong_parameters_expect.rb +104 -0
  88. data/lib/rubocop/cop/rails/three_state_boolean_column.rb +4 -5
  89. data/lib/rubocop/cop/rails/time_zone.rb +26 -11
  90. data/lib/rubocop/cop/rails/transaction_exit_statement.rb +40 -9
  91. data/lib/rubocop/cop/rails/uniq_before_pluck.rb +11 -26
  92. data/lib/rubocop/cop/rails/unique_validation_without_index.rb +17 -21
  93. data/lib/rubocop/cop/rails/unknown_env.rb +5 -1
  94. data/lib/rubocop/cop/rails/unused_ignored_columns.rb +6 -0
  95. data/lib/rubocop/cop/rails/unused_render_content.rb +67 -0
  96. data/lib/rubocop/cop/rails/validation.rb +9 -4
  97. data/lib/rubocop/cop/rails/where_equals.rb +29 -12
  98. data/lib/rubocop/cop/rails/where_exists.rb +9 -9
  99. data/lib/rubocop/cop/rails/where_missing.rb +6 -2
  100. data/lib/rubocop/cop/rails/where_not.rb +18 -11
  101. data/lib/rubocop/cop/rails/where_range.rb +203 -0
  102. data/lib/rubocop/cop/rails_cops.rb +11 -0
  103. data/lib/rubocop/rails/migration_file_skippable.rb +54 -0
  104. data/lib/rubocop/rails/plugin.rb +48 -0
  105. data/lib/rubocop/rails/schema_loader/schema.rb +8 -7
  106. data/lib/rubocop/rails/schema_loader.rb +5 -15
  107. data/lib/rubocop/rails/version.rb +1 -1
  108. data/lib/rubocop/rails.rb +1 -8
  109. data/lib/rubocop-rails.rb +12 -4
  110. metadata +55 -11
  111. data/lib/rubocop/rails/inject.rb +0 -18
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.1
4
+ version: 2.30.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
8
8
  - Jonas Arvidsson
9
9
  - Yuji Nakayama
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2023-04-16 00:00:00.000000000 Z
12
+ date: 2025-03-03 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
@@ -26,6 +25,20 @@ dependencies:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
27
  version: 4.2.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: lint_roller
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.1'
29
42
  - !ruby/object:Gem::Dependency
30
43
  name: rack
31
44
  requirement: !ruby/object:Gem::Requirement
@@ -46,7 +59,27 @@ dependencies:
46
59
  requirements:
47
60
  - - ">="
48
61
  - !ruby/object:Gem::Version
49
- version: 1.33.0
62
+ version: 1.72.1
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '2.0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.72.1
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: rubocop-ast
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.38.0
50
83
  - - "<"
51
84
  - !ruby/object:Gem::Version
52
85
  version: '2.0'
@@ -56,7 +89,7 @@ dependencies:
56
89
  requirements:
57
90
  - - ">="
58
91
  - !ruby/object:Gem::Version
59
- version: 1.33.0
92
+ version: 1.38.0
60
93
  - - "<"
61
94
  - !ruby/object:Gem::Version
62
95
  version: '2.0'
@@ -78,9 +111,11 @@ files:
78
111
  - lib/rubocop/cop/mixin/active_record_helper.rb
79
112
  - lib/rubocop/cop/mixin/active_record_migrations_helper.rb
80
113
  - lib/rubocop/cop/mixin/class_send_node_helper.rb
114
+ - lib/rubocop/cop/mixin/database_type_resolvable.rb
81
115
  - lib/rubocop/cop/mixin/enforce_superclass.rb
82
116
  - lib/rubocop/cop/mixin/index_method.rb
83
117
  - lib/rubocop/cop/mixin/migrations_helper.rb
118
+ - lib/rubocop/cop/mixin/routes_helper.rb
84
119
  - lib/rubocop/cop/mixin/target_rails_version.rb
85
120
  - lib/rubocop/cop/rails/action_controller_flash_before_render.rb
86
121
  - lib/rubocop/cop/rails/action_controller_test_case.rb
@@ -106,6 +141,7 @@ files:
106
141
  - lib/rubocop/cop/rails/compact_blank.rb
107
142
  - lib/rubocop/cop/rails/content_tag.rb
108
143
  - lib/rubocop/cop/rails/create_table_with_timestamps.rb
144
+ - lib/rubocop/cop/rails/dangerous_column_names.rb
109
145
  - lib/rubocop/cop/rails/date.rb
110
146
  - lib/rubocop/cop/rails/default_scope.rb
111
147
  - lib/rubocop/cop/rails/delegate.rb
@@ -118,7 +154,9 @@ files:
118
154
  - lib/rubocop/cop/rails/dynamic_find_by.rb
119
155
  - lib/rubocop/cop/rails/eager_evaluation_log_message.rb
120
156
  - lib/rubocop/cop/rails/enum_hash.rb
157
+ - lib/rubocop/cop/rails/enum_syntax.rb
121
158
  - lib/rubocop/cop/rails/enum_uniqueness.rb
159
+ - lib/rubocop/cop/rails/env_local.rb
122
160
  - lib/rubocop/cop/rails/environment_comparison.rb
123
161
  - lib/rubocop/cop/rails/environment_variable_access.rb
124
162
  - lib/rubocop/cop/rails/exit.rb
@@ -147,6 +185,7 @@ files:
147
185
  - lib/rubocop/cop/rails/mailer_name.rb
148
186
  - lib/rubocop/cop/rails/match_route.rb
149
187
  - lib/rubocop/cop/rails/migration_class_name.rb
188
+ - lib/rubocop/cop/rails/multiple_route_paths.rb
150
189
  - lib/rubocop/cop/rails/negate_include.rb
151
190
  - lib/rubocop/cop/rails/not_null_column.rb
152
191
  - lib/rubocop/cop/rails/order_by_id.rb
@@ -161,6 +200,7 @@ files:
161
200
  - lib/rubocop/cop/rails/present.rb
162
201
  - lib/rubocop/cop/rails/rake_environment.rb
163
202
  - lib/rubocop/cop/rails/read_write_attribute.rb
203
+ - lib/rubocop/cop/rails/redundant_active_record_all_method.rb
164
204
  - lib/rubocop/cop/rails/redundant_allow_nil.rb
165
205
  - lib/rubocop/cop/rails/redundant_foreign_key.rb
166
206
  - lib/rubocop/cop/rails/redundant_presence_validation_on_belongs_to.rb
@@ -184,10 +224,12 @@ files:
184
224
  - lib/rubocop/cop/rails/save_bang.rb
185
225
  - lib/rubocop/cop/rails/schema_comment.rb
186
226
  - lib/rubocop/cop/rails/scope_args.rb
227
+ - lib/rubocop/cop/rails/select_map.rb
187
228
  - lib/rubocop/cop/rails/short_i18n.rb
188
229
  - lib/rubocop/cop/rails/skips_model_validations.rb
189
230
  - lib/rubocop/cop/rails/squished_sql_heredocs.rb
190
231
  - lib/rubocop/cop/rails/strip_heredoc.rb
232
+ - lib/rubocop/cop/rails/strong_parameters_expect.rb
191
233
  - lib/rubocop/cop/rails/table_name_assignment.rb
192
234
  - lib/rubocop/cop/rails/three_state_boolean_column.rb
193
235
  - lib/rubocop/cop/rails/time_zone.rb
@@ -200,15 +242,18 @@ files:
200
242
  - lib/rubocop/cop/rails/unique_validation_without_index.rb
201
243
  - lib/rubocop/cop/rails/unknown_env.rb
202
244
  - lib/rubocop/cop/rails/unused_ignored_columns.rb
245
+ - lib/rubocop/cop/rails/unused_render_content.rb
203
246
  - lib/rubocop/cop/rails/validation.rb
204
247
  - lib/rubocop/cop/rails/where_equals.rb
205
248
  - lib/rubocop/cop/rails/where_exists.rb
206
249
  - lib/rubocop/cop/rails/where_missing.rb
207
250
  - lib/rubocop/cop/rails/where_not.rb
208
251
  - lib/rubocop/cop/rails/where_not_with_multiple_conditions.rb
252
+ - lib/rubocop/cop/rails/where_range.rb
209
253
  - lib/rubocop/cop/rails_cops.rb
210
254
  - lib/rubocop/rails.rb
211
- - lib/rubocop/rails/inject.rb
255
+ - lib/rubocop/rails/migration_file_skippable.rb
256
+ - lib/rubocop/rails/plugin.rb
212
257
  - lib/rubocop/rails/schema_loader.rb
213
258
  - lib/rubocop/rails/schema_loader/schema.rb
214
259
  - lib/rubocop/rails/version.rb
@@ -219,10 +264,10 @@ metadata:
219
264
  homepage_uri: https://docs.rubocop.org/rubocop-rails/
220
265
  changelog_uri: https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md
221
266
  source_code_uri: https://github.com/rubocop/rubocop-rails/
222
- documentation_uri: https://docs.rubocop.org/rubocop-rails/2.19/
267
+ documentation_uri: https://docs.rubocop.org/rubocop-rails/2.30/
223
268
  bug_tracker_uri: https://github.com/rubocop/rubocop-rails/issues
224
269
  rubygems_mfa_required: 'true'
225
- post_install_message:
270
+ default_lint_roller_plugin: RuboCop::Rails::Plugin
226
271
  rdoc_options: []
227
272
  require_paths:
228
273
  - lib
@@ -230,15 +275,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
275
  requirements:
231
276
  - - ">="
232
277
  - !ruby/object:Gem::Version
233
- version: 2.6.0
278
+ version: 2.7.0
234
279
  required_rubygems_version: !ruby/object:Gem::Requirement
235
280
  requirements:
236
281
  - - ">="
237
282
  - !ruby/object:Gem::Version
238
283
  version: '0'
239
284
  requirements: []
240
- rubygems_version: 3.5.0.dev
241
- signing_key:
285
+ rubygems_version: 3.6.2
242
286
  specification_version: 4
243
287
  summary: Automatic Rails code style checking tool.
244
288
  test_files: []
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RuboCop
4
- module Rails
5
- # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
6
- # bit of our configuration.
7
- module Inject
8
- def self.defaults!
9
- path = CONFIG_DEFAULT.to_s
10
- hash = ConfigLoader.send(:load_yaml_configuration, path)
11
- config = Config.new(hash, path).tap(&:make_excludes_absolute)
12
- puts "configuration from #{path}" if ConfigLoader.debug?
13
- config = ConfigLoader.merge_with_default(config, path, unset_nil: false)
14
- ConfigLoader.instance_variable_set(:@default_configuration, config)
15
- end
16
- end
17
- end
18
- end