ffi-geos 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +2 -2
- data/.rbenv-vars +1 -0
- data/.rubocop.yml +538 -92
- data/.rubocop_todo.yml +28 -18
- data/ffi-geos.gemspec +2 -2
- data/lib/ffi-geos/coordinate_sequence.rb +2 -1
- data/lib/ffi-geos/geometry.rb +95 -1
- data/lib/ffi-geos/point.rb +9 -0
- data/lib/ffi-geos/version.rb +1 -1
- data/lib/ffi-geos.rb +78 -3
- data/test/coordinate_sequence_tests.rb +22 -4
- data/test/geojson_reader_tests.rb +6 -2
- data/test/geometry/area_tests.rb +18 -0
- data/test/geometry/boundary_tests.rb +36 -0
- data/test/geometry/buffer_tests.rb +116 -0
- data/test/geometry/build_area_tests.rb +20 -0
- data/test/geometry/centroid_tests.rb +37 -0
- data/test/geometry/clip_by_rect_tests.rb +56 -0
- data/test/geometry/clone_tests.rb +29 -0
- data/test/geometry/concave_hull_of_polygons_tests.rb +28 -0
- data/test/geometry/concave_hull_tests.rb +38 -0
- data/test/geometry/convex_hull_tests.rb +26 -0
- data/test/geometry/coord_seq_tests.rb +27 -0
- data/test/geometry/delaunay_triangulation_tests.rb +82 -0
- data/test/geometry/densify_tests.rb +95 -0
- data/test/geometry/difference_tests.rb +108 -0
- data/test/geometry/dimensions_tests.rb +46 -0
- data/test/geometry/distance_tests.rb +29 -0
- data/test/geometry/dump_points_tests.rb +60 -0
- data/test/geometry/dup_tests.rb +29 -0
- data/test/geometry/empty_tests.rb +23 -0
- data/test/geometry/envelope_tests.rb +26 -0
- data/test/geometry/equal_identical_tests.rb +78 -0
- data/test/geometry/equal_tests.rb +62 -0
- data/test/geometry/exterior_ring_tests.rb +27 -0
- data/test/geometry/extract_unique_points_tests.rb +41 -0
- data/test/geometry/frecet_distance_tests.rb +24 -0
- data/test/geometry/get_geometry_n_tests.rb +21 -0
- data/test/geometry/hausdorff_distance_tests.rb +46 -0
- data/test/geometry/hilbert_code_tests.rb +45 -0
- data/test/geometry/interior_ring_n_tests.rb +64 -0
- data/test/geometry/interior_rings_tests.rb +36 -0
- data/test/geometry/interpolate_tests.rb +49 -0
- data/test/geometry/intersection_tests.rb +49 -0
- data/test/geometry/largest_empty_circle_tests.rb +26 -0
- data/test/geometry/length_tests.rb +18 -0
- data/test/geometry/line_merge_directed_tests.rb +28 -0
- data/test/geometry/line_merge_tests.rb +25 -0
- data/test/geometry/line_string_enumerator_tests.rb +20 -0
- data/test/geometry/line_substring_tests.rb +76 -0
- data/test/geometry/make_valid_tests.rb +27 -0
- data/test/geometry/maximum_inscribed_circle_tests.rb +21 -0
- data/test/geometry/minimum_bounding_circle_tests.rb +23 -0
- data/test/geometry/minimum_clearance_tests.rb +58 -0
- data/test/geometry/minimum_rotated_rectangle_tests.rb +28 -0
- data/test/geometry/minimum_width_tests.rb +26 -0
- data/test/geometry/misc_tests.rb +24 -0
- data/test/geometry/nearest_points_tests.rb +46 -0
- data/test/geometry/node_tests.rb +22 -0
- data/test/geometry/normalize_tests.rb +34 -0
- data/test/geometry/num_coordinates_tests.rb +39 -0
- data/test/geometry/num_goemetries_tests.rb +35 -0
- data/test/geometry/num_interior_rings_tests.rb +28 -0
- data/test/geometry/orient_polygons_tests.rb +101 -0
- data/test/geometry/point_on_surface_tests.rb +37 -0
- data/test/geometry/polygon_hull_simplify_tests.rb +55 -0
- data/test/geometry/polygonize_tests.rb +173 -0
- data/test/geometry/precision_tests.rb +42 -0
- data/test/geometry/project_tests.rb +56 -0
- data/test/geometry/relate_tests.rb +73 -0
- data/test/geometry/relationships_tests.rb +138 -0
- data/test/geometry/reverse_tests.rb +44 -0
- data/test/geometry/ring_tests.rb +18 -0
- data/test/geometry/shared_path_tests.rb +31 -0
- data/test/geometry/simple_tests.rb +18 -0
- data/test/geometry/simplify_tests.rb +21 -0
- data/test/geometry/snap_tests.rb +20 -0
- data/test/geometry/srid_copy_policy_tests.rb +94 -0
- data/test/geometry/start_and_end_point_tests.rb +24 -0
- data/test/geometry/sym_difference_tests.rb +114 -0
- data/test/geometry/topology_preserve_simplify_tests.rb +21 -0
- data/test/geometry/union_tests.rb +216 -0
- data/test/geometry/valid_tests.rb +56 -0
- data/test/geometry/voronoi_diagram_tests.rb +62 -0
- data/test/geometry_collection_tests.rb +14 -2
- data/test/interrupt_tests.rb +1 -1
- data/test/line_string_tests.rb +24 -3
- data/test/misc_tests.rb +1 -1
- data/test/point/has_m_tests.rb +43 -0
- data/test/point/x_y_z_m_tests.rb +51 -0
- data/test/point_tests.rb +25 -3
- data/test/polygon_tests.rb +14 -1
- data/test/prepared_geometry_tests.rb +6 -5
- data/test/strtree_tests.rb +11 -18
- data/test/test_helper.rb +2 -0
- data/test/tools_tests.rb +7 -0
- data/test/utils_tests.rb +14 -3
- data/test/wkb_reader_tests.rb +1 -0
- data/test/wkb_writer_tests.rb +26 -5
- data/test/wkt_reader_tests.rb +2 -0
- data/test/wkt_writer_tests.rb +20 -2
- metadata +154 -7
- data/test/geometry_tests.rb +0 -2114
data/.rubocop.yml
CHANGED
@@ -42,6 +42,7 @@ AllCops:
|
|
42
42
|
- '**/*.rbx'
|
43
43
|
- '**/*.ru'
|
44
44
|
- '**/*.ruby'
|
45
|
+
- '**/*.schema'
|
45
46
|
- '**/*.spec'
|
46
47
|
- '**/*.thor'
|
47
48
|
- '**/*.watchr'
|
@@ -67,18 +68,17 @@ AllCops:
|
|
67
68
|
- '**/Puppetfile'
|
68
69
|
- '**/Rakefile'
|
69
70
|
- '**/rakefile'
|
71
|
+
- '**/Schemafile'
|
70
72
|
- '**/Snapfile'
|
71
73
|
- '**/Steepfile'
|
72
74
|
- '**/Thorfile'
|
73
75
|
- '**/Vagabondfile'
|
74
76
|
- '**/Vagrantfile'
|
75
77
|
Exclude:
|
76
|
-
- '.bundle/**/*'
|
77
|
-
- 'node_modules/**/*'
|
78
78
|
- 'tmp/**/*'
|
79
|
-
- 'vendor/**/*'
|
80
79
|
- '.git/**/*'
|
81
|
-
- '
|
80
|
+
- '.pryrc'
|
81
|
+
|
82
82
|
# Default formatter will be used if no `-f/--format` option is given.
|
83
83
|
DefaultFormatter: progress
|
84
84
|
# Cop names are displayed in offense messages by default. Change behavior
|
@@ -122,7 +122,7 @@ AllCops:
|
|
122
122
|
# the `--enable-pending-cops` command-line option.
|
123
123
|
# When `NewCops` is `disable`, pending cops are disabled in bulk. Can be overridden by
|
124
124
|
# the `--disable-pending-cops` command-line option.
|
125
|
-
NewCops:
|
125
|
+
NewCops: enable
|
126
126
|
# Enables the result cache if `true`. Can be overridden by the `--cache` command
|
127
127
|
# line option.
|
128
128
|
UseCache: true
|
@@ -154,7 +154,7 @@ AllCops:
|
|
154
154
|
# or gems.locked file. (Although the Ruby version is specified in the Gemfile
|
155
155
|
# or gems.rb file, RuboCop reads the final value from the lock file.) If the
|
156
156
|
# Ruby version is still unresolved, RuboCop will use the oldest officially
|
157
|
-
# supported Ruby version (currently Ruby 2.
|
157
|
+
# supported Ruby version (currently Ruby 2.7).
|
158
158
|
TargetRubyVersion: ~
|
159
159
|
# Determines if a notification for extension libraries should be shown when
|
160
160
|
# rubocop is run. Keys are the name of the extension, and values are an array
|
@@ -167,7 +167,19 @@ AllCops:
|
|
167
167
|
Bundler/DuplicatedGem:
|
168
168
|
Description: 'Checks for duplicate gem entries in Gemfile.'
|
169
169
|
Enabled: true
|
170
|
+
Severity: warning
|
170
171
|
VersionAdded: '0.46'
|
172
|
+
VersionChanged: '1.40'
|
173
|
+
Include:
|
174
|
+
- '**/*.gemfile'
|
175
|
+
- '**/Gemfile'
|
176
|
+
- '**/gems.rb'
|
177
|
+
|
178
|
+
Bundler/DuplicatedGroup:
|
179
|
+
Description: 'Checks for duplicate group entries in Gemfile.'
|
180
|
+
Enabled: true
|
181
|
+
Severity: warning
|
182
|
+
VersionAdded: '1.56'
|
171
183
|
Include:
|
172
184
|
- '**/*.gemfile'
|
173
185
|
- '**/Gemfile'
|
@@ -219,7 +231,9 @@ Bundler/InsecureProtocolSource:
|
|
219
231
|
because HTTP requests are insecure. Please change your source to
|
220
232
|
'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
|
221
233
|
Enabled: true
|
234
|
+
Severity: warning
|
222
235
|
VersionAdded: '0.50'
|
236
|
+
VersionChanged: '1.40'
|
223
237
|
AllowHttpProtocol: true
|
224
238
|
Include:
|
225
239
|
- '**/*.gemfile'
|
@@ -243,13 +257,6 @@ Bundler/OrderedGems:
|
|
243
257
|
|
244
258
|
#################### Gemspec ###############################
|
245
259
|
|
246
|
-
Gemspec/DateAssignment:
|
247
|
-
Description: 'Checks that `date =` is not used in gemspec file, it is set automatically when the gem is packaged.'
|
248
|
-
Enabled: true
|
249
|
-
VersionAdded: '1.10'
|
250
|
-
Include:
|
251
|
-
- '**/*.gemspec'
|
252
|
-
|
253
260
|
Gemspec/DependencyVersion:
|
254
261
|
Description: 'Requires or forbids specifying gem dependency versions.'
|
255
262
|
Enabled: false
|
@@ -264,15 +271,34 @@ Gemspec/DependencyVersion:
|
|
264
271
|
|
265
272
|
Gemspec/DeprecatedAttributeAssignment:
|
266
273
|
Description: Checks that deprecated attribute assignments are not set in a gemspec file.
|
267
|
-
Enabled:
|
274
|
+
Enabled: true
|
275
|
+
Severity: warning
|
268
276
|
VersionAdded: '1.30'
|
277
|
+
VersionChanged: '1.40'
|
278
|
+
Include:
|
279
|
+
- '**/*.gemspec'
|
280
|
+
|
281
|
+
Gemspec/DevelopmentDependencies:
|
282
|
+
Description: Checks that development dependencies are specified in Gemfile rather than gemspec.
|
283
|
+
Enabled: true
|
284
|
+
VersionAdded: '1.44'
|
285
|
+
EnforcedStyle: Gemfile
|
286
|
+
SupportedStyles:
|
287
|
+
- Gemfile
|
288
|
+
- gems.rb
|
289
|
+
- gemspec
|
290
|
+
AllowedGems: []
|
269
291
|
Include:
|
270
292
|
- '**/*.gemspec'
|
293
|
+
- '**/Gemfile'
|
294
|
+
- '**/gems.rb'
|
271
295
|
|
272
296
|
Gemspec/DuplicatedAssignment:
|
273
297
|
Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
|
274
298
|
Enabled: true
|
299
|
+
Severity: warning
|
275
300
|
VersionAdded: '0.52'
|
301
|
+
VersionChanged: '1.40'
|
276
302
|
Include:
|
277
303
|
- '**/*.gemspec'
|
278
304
|
|
@@ -291,7 +317,9 @@ Gemspec/OrderedDependencies:
|
|
291
317
|
Gemspec/RequireMFA:
|
292
318
|
Description: 'Checks that the gemspec has metadata to require Multi-Factor Authentication from RubyGems.'
|
293
319
|
Enabled: true
|
320
|
+
Severity: warning
|
294
321
|
VersionAdded: '1.23'
|
322
|
+
VersionChanged: '1.40'
|
295
323
|
Reference:
|
296
324
|
- https://guides.rubygems.org/mfa-requirement-opt-in/
|
297
325
|
Include:
|
@@ -300,8 +328,9 @@ Gemspec/RequireMFA:
|
|
300
328
|
Gemspec/RequiredRubyVersion:
|
301
329
|
Description: 'Checks that `required_ruby_version` of gemspec is specified and equal to `TargetRubyVersion` of .rubocop.yml.'
|
302
330
|
Enabled: true
|
331
|
+
Severity: warning
|
303
332
|
VersionAdded: '0.52'
|
304
|
-
VersionChanged: '1.
|
333
|
+
VersionChanged: '1.40'
|
305
334
|
Include:
|
306
335
|
- '**/*.gemspec'
|
307
336
|
|
@@ -309,7 +338,9 @@ Gemspec/RubyVersionGlobalsUsage:
|
|
309
338
|
Description: Checks usage of RUBY_VERSION in gemspec.
|
310
339
|
StyleGuide: '#no-ruby-version-in-the-gemspec'
|
311
340
|
Enabled: true
|
341
|
+
Severity: warning
|
312
342
|
VersionAdded: '0.72'
|
343
|
+
VersionChanged: '1.40'
|
313
344
|
Include:
|
314
345
|
- '**/*.gemspec'
|
315
346
|
|
@@ -378,7 +409,7 @@ Layout/ArrayAlignment:
|
|
378
409
|
#
|
379
410
|
# array = [1, 2, 3,
|
380
411
|
# 4, 5, 6]
|
381
|
-
EnforcedStyle:
|
412
|
+
EnforcedStyle: with_fixed_indentation
|
382
413
|
SupportedStyles:
|
383
414
|
- with_first_element
|
384
415
|
- with_fixed_indentation
|
@@ -392,7 +423,7 @@ Layout/AssignmentIndentation:
|
|
392
423
|
right-hand-side of a multi-line assignment.
|
393
424
|
Enabled: true
|
394
425
|
VersionAdded: '0.49'
|
395
|
-
VersionChanged: '
|
426
|
+
VersionChanged: '1.45'
|
396
427
|
# By default the indentation width from `Layout/IndentationWidth` is used,
|
397
428
|
# but it can be overridden by setting this parameter.
|
398
429
|
IndentationWidth: ~
|
@@ -450,7 +481,9 @@ Layout/ClassStructure:
|
|
450
481
|
Description: 'Enforces a configured order of definitions within a class body.'
|
451
482
|
StyleGuide: '#consistent-classes'
|
452
483
|
Enabled: false
|
484
|
+
SafeAutoCorrect: false
|
453
485
|
VersionAdded: '0.52'
|
486
|
+
VersionChanged: '1.53'
|
454
487
|
Categories:
|
455
488
|
module_inclusion:
|
456
489
|
- include
|
@@ -510,7 +543,7 @@ Layout/DefEndAlignment:
|
|
510
543
|
Layout/DotPosition:
|
511
544
|
Description: 'Checks the position of the dot in multi-line method calls.'
|
512
545
|
StyleGuide: '#consistent-multi-line-chains'
|
513
|
-
Enabled:
|
546
|
+
Enabled: false
|
514
547
|
VersionAdded: '0.49'
|
515
548
|
EnforcedStyle: leading
|
516
549
|
SupportedStyles:
|
@@ -531,7 +564,7 @@ Layout/EmptyComment:
|
|
531
564
|
|
532
565
|
Layout/EmptyLineAfterGuardClause:
|
533
566
|
Description: 'Add empty line after guard clause.'
|
534
|
-
Enabled:
|
567
|
+
Enabled: false
|
535
568
|
VersionAdded: '0.56'
|
536
569
|
VersionChanged: '0.59'
|
537
570
|
|
@@ -558,9 +591,11 @@ Layout/EmptyLineBetweenDefs:
|
|
558
591
|
EmptyLineBetweenMethodDefs: true
|
559
592
|
EmptyLineBetweenClassDefs: true
|
560
593
|
EmptyLineBetweenModuleDefs: true
|
594
|
+
# `DefLikeMacros` takes the name of any macro that you want to treat like a def.
|
595
|
+
DefLikeMacros: []
|
561
596
|
# `AllowAdjacentOneLineDefs` means that single line method definitions don't
|
562
597
|
# need an empty line between them. `true` by default.
|
563
|
-
AllowAdjacentOneLineDefs:
|
598
|
+
AllowAdjacentOneLineDefs: false
|
564
599
|
# Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
|
565
600
|
NumberOfEmptyLines: 1
|
566
601
|
|
@@ -761,6 +796,7 @@ Layout/FirstArrayElementLineBreak:
|
|
761
796
|
multi-line array.
|
762
797
|
Enabled: false
|
763
798
|
VersionAdded: '0.49'
|
799
|
+
AllowMultilineFinalElement: false
|
764
800
|
|
765
801
|
Layout/FirstHashElementIndentation:
|
766
802
|
Description: 'Checks the indentation of the first key in a hash literal.'
|
@@ -793,6 +829,7 @@ Layout/FirstHashElementLineBreak:
|
|
793
829
|
multi-line hash.
|
794
830
|
Enabled: false
|
795
831
|
VersionAdded: '0.49'
|
832
|
+
AllowMultilineFinalElement: false
|
796
833
|
|
797
834
|
Layout/FirstMethodArgumentLineBreak:
|
798
835
|
Description: >-
|
@@ -800,6 +837,7 @@ Layout/FirstMethodArgumentLineBreak:
|
|
800
837
|
multi-line method call.
|
801
838
|
Enabled: false
|
802
839
|
VersionAdded: '0.49'
|
840
|
+
AllowMultilineFinalElement: false
|
803
841
|
|
804
842
|
Layout/FirstMethodParameterLineBreak:
|
805
843
|
Description: >-
|
@@ -807,6 +845,7 @@ Layout/FirstMethodParameterLineBreak:
|
|
807
845
|
multi-line method parameter definition.
|
808
846
|
Enabled: false
|
809
847
|
VersionAdded: '0.49'
|
848
|
+
AllowMultilineFinalElement: false
|
810
849
|
|
811
850
|
Layout/FirstParameterIndentation:
|
812
851
|
Description: >-
|
@@ -959,7 +998,6 @@ Layout/IndentationWidth:
|
|
959
998
|
# Number of spaces for each indentation level.
|
960
999
|
Width: 2
|
961
1000
|
AllowedPatterns: []
|
962
|
-
# IgnoredPatterns: [] # deprecated
|
963
1001
|
|
964
1002
|
Layout/InitialIndentation:
|
965
1003
|
Description: >-
|
@@ -982,6 +1020,27 @@ Layout/LeadingEmptyLines:
|
|
982
1020
|
VersionAdded: '0.57'
|
983
1021
|
VersionChanged: '0.77'
|
984
1022
|
|
1023
|
+
Layout/LineContinuationLeadingSpace:
|
1024
|
+
Description: >-
|
1025
|
+
Use trailing spaces instead of leading spaces in strings
|
1026
|
+
broken over multiple lines (by a backslash).
|
1027
|
+
Enabled: true
|
1028
|
+
VersionAdded: '1.31'
|
1029
|
+
VersionChanged: '1.45'
|
1030
|
+
EnforcedStyle: trailing
|
1031
|
+
SupportedStyles:
|
1032
|
+
- leading
|
1033
|
+
- trailing
|
1034
|
+
|
1035
|
+
Layout/LineContinuationSpacing:
|
1036
|
+
Description: 'Checks the spacing in front of backslash in line continuations.'
|
1037
|
+
Enabled: true
|
1038
|
+
VersionAdded: '1.31'
|
1039
|
+
EnforcedStyle: space
|
1040
|
+
SupportedStyles:
|
1041
|
+
- space
|
1042
|
+
- no_space
|
1043
|
+
|
985
1044
|
Layout/LineEndStringConcatenationIndentation:
|
986
1045
|
Description: >-
|
987
1046
|
Checks the indentation of the next line after a line that
|
@@ -1017,7 +1076,6 @@ Layout/LineLength:
|
|
1017
1076
|
# elements. Strings will be converted to Regexp objects. A line that matches
|
1018
1077
|
# any regular expression listed in this option will be ignored by LineLength.
|
1019
1078
|
AllowedPatterns: []
|
1020
|
-
# IgnoredPatterns: []
|
1021
1079
|
|
1022
1080
|
Layout/MultilineArrayBraceLayout:
|
1023
1081
|
Description: >-
|
@@ -1041,6 +1099,7 @@ Layout/MultilineArrayLineBreaks:
|
|
1041
1099
|
starts on a separate line.
|
1042
1100
|
Enabled: false
|
1043
1101
|
VersionAdded: '0.67'
|
1102
|
+
AllowMultilineFinalElement: false
|
1044
1103
|
|
1045
1104
|
Layout/MultilineAssignmentLayout:
|
1046
1105
|
Description: 'Check for a newline after the assignment operator in multi-line assignments.'
|
@@ -1091,6 +1150,7 @@ Layout/MultilineHashKeyLineBreaks:
|
|
1091
1150
|
starts on a separate line.
|
1092
1151
|
Enabled: false
|
1093
1152
|
VersionAdded: '0.67'
|
1153
|
+
AllowMultilineFinalElement: false
|
1094
1154
|
|
1095
1155
|
Layout/MultilineMethodArgumentLineBreaks:
|
1096
1156
|
Description: >-
|
@@ -1098,6 +1158,7 @@ Layout/MultilineMethodArgumentLineBreaks:
|
|
1098
1158
|
starts on a separate line.
|
1099
1159
|
Enabled: false
|
1100
1160
|
VersionAdded: '0.67'
|
1161
|
+
AllowMultilineFinalElement: false
|
1101
1162
|
|
1102
1163
|
Layout/MultilineMethodCallBraceLayout:
|
1103
1164
|
Description: >-
|
@@ -1146,6 +1207,14 @@ Layout/MultilineMethodDefinitionBraceLayout:
|
|
1146
1207
|
- new_line
|
1147
1208
|
- same_line
|
1148
1209
|
|
1210
|
+
Layout/MultilineMethodParameterLineBreaks:
|
1211
|
+
Description: >-
|
1212
|
+
Checks that each parameter in a multi-line method definition
|
1213
|
+
starts on a separate line.
|
1214
|
+
Enabled: false
|
1215
|
+
VersionAdded: '1.32'
|
1216
|
+
AllowMultilineFinalElement: false
|
1217
|
+
|
1149
1218
|
Layout/MultilineOperationIndentation:
|
1150
1219
|
Description: >-
|
1151
1220
|
Checks indentation of binary operations that span more than
|
@@ -1284,6 +1353,10 @@ Layout/SpaceAroundOperators:
|
|
1284
1353
|
SupportedStylesForExponentOperator:
|
1285
1354
|
- space
|
1286
1355
|
- no_space
|
1356
|
+
EnforcedStyleForRationalLiterals: no_space
|
1357
|
+
SupportedStylesForRationalLiterals:
|
1358
|
+
- space
|
1359
|
+
- no_space
|
1287
1360
|
|
1288
1361
|
Layout/SpaceBeforeBlockBraces:
|
1289
1362
|
Description: >-
|
@@ -1479,11 +1552,11 @@ Lint/AmbiguousBlockAssociation:
|
|
1479
1552
|
Description: >-
|
1480
1553
|
Checks for ambiguous block association with method when param passed without
|
1481
1554
|
parentheses.
|
1482
|
-
StyleGuide: '#syntax'
|
1483
1555
|
Enabled: true
|
1484
1556
|
VersionAdded: '0.48'
|
1485
1557
|
VersionChanged: '1.13'
|
1486
|
-
|
1558
|
+
AllowedMethods: []
|
1559
|
+
AllowedPatterns: []
|
1487
1560
|
|
1488
1561
|
Lint/AmbiguousOperator:
|
1489
1562
|
Description: >-
|
@@ -1520,7 +1593,9 @@ Lint/AssignmentInCondition:
|
|
1520
1593
|
Description: "Don't use assignment in conditions."
|
1521
1594
|
StyleGuide: '#safe-assignment-in-condition'
|
1522
1595
|
Enabled: true
|
1596
|
+
SafeAutoCorrect: false
|
1523
1597
|
VersionAdded: '0.9'
|
1598
|
+
VersionChanged: '1.45'
|
1524
1599
|
AllowSafeAssignment: true
|
1525
1600
|
|
1526
1601
|
Lint/BigDecimalNew:
|
@@ -1529,7 +1604,7 @@ Lint/BigDecimalNew:
|
|
1529
1604
|
VersionAdded: '0.53'
|
1530
1605
|
|
1531
1606
|
Lint/BinaryOperatorWithIdenticalOperands:
|
1532
|
-
Description: '
|
1607
|
+
Description: 'Checks for places where binary operator has identical operands.'
|
1533
1608
|
Enabled: true
|
1534
1609
|
Safe: false
|
1535
1610
|
VersionAdded: '0.89'
|
@@ -1558,6 +1633,11 @@ Lint/ConstantDefinitionInBlock:
|
|
1558
1633
|
AllowedMethods:
|
1559
1634
|
- enums
|
1560
1635
|
|
1636
|
+
Lint/ConstantOverwrittenInRescue:
|
1637
|
+
Description: 'Checks for overwriting an exception with an exception result by use `rescue =>`.'
|
1638
|
+
Enabled: true
|
1639
|
+
VersionAdded: '1.31'
|
1640
|
+
|
1561
1641
|
Lint/ConstantResolution:
|
1562
1642
|
Description: 'Check that constants are fully qualified with `::`.'
|
1563
1643
|
Enabled: false
|
@@ -1571,13 +1651,13 @@ Lint/Debugger:
|
|
1571
1651
|
Description: 'Check for debugger calls.'
|
1572
1652
|
Enabled: true
|
1573
1653
|
VersionAdded: '0.14'
|
1574
|
-
VersionChanged: '1.
|
1575
|
-
#DebuggerReceivers: [] # deprecated
|
1654
|
+
VersionChanged: '1.46'
|
1576
1655
|
DebuggerMethods:
|
1577
1656
|
# Groups are available so that a specific group can be disabled in
|
1578
1657
|
# a user's configuration, but are otherwise not significant.
|
1579
1658
|
Kernel:
|
1580
1659
|
- binding.irb
|
1660
|
+
- Kernel.binding.irb
|
1581
1661
|
Byebug:
|
1582
1662
|
- byebug
|
1583
1663
|
- remote_byebug
|
@@ -1595,7 +1675,11 @@ Lint/Debugger:
|
|
1595
1675
|
- binding.pry
|
1596
1676
|
- binding.remote_pry
|
1597
1677
|
- binding.pry_remote
|
1678
|
+
- Kernel.binding.pry
|
1679
|
+
- Kernel.binding.remote_pry
|
1680
|
+
- Kernel.binding.pry_remote
|
1598
1681
|
- Pry.rescue
|
1682
|
+
- pry
|
1599
1683
|
Rails:
|
1600
1684
|
- debugger
|
1601
1685
|
- Kernel.debugger
|
@@ -1613,7 +1697,7 @@ Lint/DeprecatedConstants:
|
|
1613
1697
|
Description: 'Checks for deprecated constants.'
|
1614
1698
|
Enabled: true
|
1615
1699
|
VersionAdded: '1.8'
|
1616
|
-
VersionChanged: '1.
|
1700
|
+
VersionChanged: '1.40'
|
1617
1701
|
# You can configure deprecated constants.
|
1618
1702
|
# If there is an alternative method, you can set alternative value as `Alternative`.
|
1619
1703
|
# And you can set the deprecated version as `DeprecatedVersion`.
|
@@ -1640,6 +1724,12 @@ Lint/DeprecatedConstants:
|
|
1640
1724
|
'Random::DEFAULT':
|
1641
1725
|
Alternative: 'Random.new'
|
1642
1726
|
DeprecatedVersion: '3.0'
|
1727
|
+
'Struct::Group':
|
1728
|
+
Alternative: 'Etc::Group'
|
1729
|
+
DeprecatedVersion: '3.0'
|
1730
|
+
'Struct::Passwd':
|
1731
|
+
Alternative: 'Etc::Passwd'
|
1732
|
+
DeprecatedVersion: '3.0'
|
1643
1733
|
|
1644
1734
|
Lint/DeprecatedOpenSSLConstant:
|
1645
1735
|
Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
|
@@ -1677,6 +1767,16 @@ Lint/DuplicateHashKey:
|
|
1677
1767
|
VersionAdded: '0.34'
|
1678
1768
|
VersionChanged: '0.77'
|
1679
1769
|
|
1770
|
+
Lint/DuplicateMagicComment:
|
1771
|
+
Description: 'Check for duplicated magic comments.'
|
1772
|
+
Enabled: true
|
1773
|
+
VersionAdded: '1.37'
|
1774
|
+
|
1775
|
+
Lint/DuplicateMatchPattern:
|
1776
|
+
Description: 'Do not repeat patterns in `in` keywords.'
|
1777
|
+
Enabled: true
|
1778
|
+
VersionAdded: '1.50'
|
1779
|
+
|
1680
1780
|
Lint/DuplicateMethods:
|
1681
1781
|
Description: 'Check for duplicate method definitions.'
|
1682
1782
|
Enabled: true
|
@@ -1727,8 +1827,10 @@ Lint/EmptyClass:
|
|
1727
1827
|
Lint/EmptyConditionalBody:
|
1728
1828
|
Description: 'Checks for the presence of `if`, `elsif` and `unless` branches without a body.'
|
1729
1829
|
Enabled: true
|
1830
|
+
SafeAutoCorrect: false
|
1730
1831
|
AllowComments: true
|
1731
1832
|
VersionAdded: '0.89'
|
1833
|
+
VersionChanged: '1.34'
|
1732
1834
|
|
1733
1835
|
Lint/EmptyEnsure:
|
1734
1836
|
Description: 'Checks for empty ensure block.'
|
@@ -1857,11 +1959,17 @@ Lint/InheritException:
|
|
1857
1959
|
- runtime_error
|
1858
1960
|
|
1859
1961
|
Lint/InterpolationCheck:
|
1860
|
-
Description: '
|
1962
|
+
Description: 'Checks for interpolation in a single quoted string.'
|
1861
1963
|
Enabled: true
|
1862
|
-
|
1964
|
+
SafeAutoCorrect: false
|
1863
1965
|
VersionAdded: '0.50'
|
1864
|
-
VersionChanged: '
|
1966
|
+
VersionChanged: '1.40'
|
1967
|
+
|
1968
|
+
Lint/ItWithoutArgumentsInBlock:
|
1969
|
+
Description: 'Checks uses of `it` calls without arguments in block.'
|
1970
|
+
Reference: 'https://bugs.ruby-lang.org/issues/18980'
|
1971
|
+
Enabled: true
|
1972
|
+
VersionAdded: '1.59'
|
1865
1973
|
|
1866
1974
|
Lint/LambdaWithoutLiteralBlock:
|
1867
1975
|
Description: 'Checks uses of lambda without a literal block.'
|
@@ -1873,6 +1981,11 @@ Lint/LiteralAsCondition:
|
|
1873
1981
|
Enabled: true
|
1874
1982
|
VersionAdded: '0.51'
|
1875
1983
|
|
1984
|
+
Lint/LiteralAssignmentInCondition:
|
1985
|
+
Description: 'Checks for literal assignments in the conditions.'
|
1986
|
+
Enabled: true
|
1987
|
+
VersionAdded: '1.58'
|
1988
|
+
|
1876
1989
|
Lint/LiteralInInterpolation:
|
1877
1990
|
Description: 'Checks for literals used in interpolation.'
|
1878
1991
|
Enabled: true
|
@@ -1907,9 +2020,16 @@ Lint/MissingSuper:
|
|
1907
2020
|
Checks for the presence of constructors and lifecycle callbacks
|
1908
2021
|
without calls to `super`.
|
1909
2022
|
Enabled: true
|
2023
|
+
AllowedParentClasses: []
|
1910
2024
|
VersionAdded: '0.89'
|
1911
2025
|
VersionChanged: '1.4'
|
1912
2026
|
|
2027
|
+
Lint/MixedCaseRange:
|
2028
|
+
Description: 'Checks for mixed-case character ranges since they include likely unintended characters.'
|
2029
|
+
Enabled: true
|
2030
|
+
SafeAutoCorrect: false
|
2031
|
+
VersionAdded: '1.53'
|
2032
|
+
|
1913
2033
|
Lint/MixedRegexpCaptureTypes:
|
1914
2034
|
Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
|
1915
2035
|
Enabled: true
|
@@ -1925,6 +2045,8 @@ Lint/NestedMethodDefinition:
|
|
1925
2045
|
Description: 'Do not use nested method definitions.'
|
1926
2046
|
StyleGuide: '#no-nested-methods'
|
1927
2047
|
Enabled: true
|
2048
|
+
AllowedMethods: []
|
2049
|
+
AllowedPatterns: []
|
1928
2050
|
VersionAdded: '0.32'
|
1929
2051
|
|
1930
2052
|
Lint/NestedPercentLiteral:
|
@@ -1944,6 +2066,13 @@ Lint/NoReturnInBeginEndBlocks:
|
|
1944
2066
|
Enabled: true
|
1945
2067
|
VersionAdded: '1.2'
|
1946
2068
|
|
2069
|
+
Lint/NonAtomicFileOperation:
|
2070
|
+
Description: Checks for non-atomic file operations.
|
2071
|
+
StyleGuide: '#atomic-file-operations'
|
2072
|
+
Enabled: true
|
2073
|
+
VersionAdded: '1.31'
|
2074
|
+
SafeAutoCorrect: false
|
2075
|
+
|
1947
2076
|
Lint/NonDeterministicRequireOrder:
|
1948
2077
|
Description: 'Always sort arrays returned by Dir.glob when requiring files.'
|
1949
2078
|
Enabled: true
|
@@ -1961,7 +2090,8 @@ Lint/NumberConversion:
|
|
1961
2090
|
VersionAdded: '0.53'
|
1962
2091
|
VersionChanged: '1.1'
|
1963
2092
|
SafeAutoCorrect: false
|
1964
|
-
|
2093
|
+
AllowedMethods: []
|
2094
|
+
AllowedPatterns: []
|
1965
2095
|
IgnoredClasses:
|
1966
2096
|
- Time
|
1967
2097
|
- DateTime
|
@@ -1980,7 +2110,9 @@ Lint/OrAssignmentToConstant:
|
|
1980
2110
|
Lint/OrderedMagicComments:
|
1981
2111
|
Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.'
|
1982
2112
|
Enabled: true
|
2113
|
+
SafeAutoCorrect: false
|
1983
2114
|
VersionAdded: '0.53'
|
2115
|
+
VersionChanged: '1.37'
|
1984
2116
|
|
1985
2117
|
Lint/OutOfRangeRegexpRef:
|
1986
2118
|
Description: 'Checks for out of range reference for Regexp because it always returns nil.'
|
@@ -2047,10 +2179,17 @@ Lint/RedundantDirGlobSort:
|
|
2047
2179
|
VersionChanged: '1.26'
|
2048
2180
|
SafeAutoCorrect: false
|
2049
2181
|
|
2182
|
+
Lint/RedundantRegexpQuantifiers:
|
2183
|
+
Description: 'Checks for redundant quantifiers in Regexps.'
|
2184
|
+
Enabled: true
|
2185
|
+
VersionAdded: '1.53'
|
2186
|
+
|
2050
2187
|
Lint/RedundantRequireStatement:
|
2051
2188
|
Description: 'Checks for unnecessary `require` statement.'
|
2052
2189
|
Enabled: true
|
2190
|
+
SafeAutoCorrect: false
|
2053
2191
|
VersionAdded: '0.76'
|
2192
|
+
VersionChanged: '1.57'
|
2054
2193
|
|
2055
2194
|
Lint/RedundantSafeNavigation:
|
2056
2195
|
Description: 'Checks for redundant safe navigation calls.'
|
@@ -2110,6 +2249,11 @@ Lint/RequireParentheses:
|
|
2110
2249
|
Enabled: true
|
2111
2250
|
VersionAdded: '0.18'
|
2112
2251
|
|
2252
|
+
Lint/RequireRangeParentheses:
|
2253
|
+
Description: 'Checks that a range literal is enclosed in parentheses when the end of the range is at a line break.'
|
2254
|
+
Enabled: true
|
2255
|
+
VersionAdded: '1.32'
|
2256
|
+
|
2113
2257
|
Lint/RequireRelativeSelfPath:
|
2114
2258
|
Description: 'Checks for uses a file requiring itself with `require_relative`.'
|
2115
2259
|
Enabled: true
|
@@ -2246,6 +2390,9 @@ Lint/TopLevelReturnWithArgument:
|
|
2246
2390
|
Description: 'Detects top level return statements with argument.'
|
2247
2391
|
Enabled: true
|
2248
2392
|
VersionAdded: '0.89'
|
2393
|
+
# These codes are `eval`-ed in method and their return values may be used.
|
2394
|
+
Exclude:
|
2395
|
+
- '**/*.jb'
|
2249
2396
|
|
2250
2397
|
Lint/TrailingCommaInAttributeDeclaration:
|
2251
2398
|
Description: 'Checks for trailing commas in attribute declarations.'
|
@@ -2305,7 +2452,6 @@ Lint/UnreachableLoop:
|
|
2305
2452
|
# RSpec uses `times` in its message expectations
|
2306
2453
|
# eg. `exactly(2).times`
|
2307
2454
|
- !ruby/regexp /(exactly|at_least|at_most)\(\d+\)\.times/
|
2308
|
-
# IgnoredPatterns: [] # deprecated
|
2309
2455
|
|
2310
2456
|
Lint/UnusedBlockArgument:
|
2311
2457
|
Description: 'Checks for unused block arguments.'
|
@@ -2355,6 +2501,14 @@ Lint/UselessAssignment:
|
|
2355
2501
|
StyleGuide: '#underscore-unused-vars'
|
2356
2502
|
Enabled: true
|
2357
2503
|
VersionAdded: '0.11'
|
2504
|
+
VersionChanged: '1.51'
|
2505
|
+
SafeAutoCorrect: false
|
2506
|
+
|
2507
|
+
Lint/UselessElseWithoutRescue:
|
2508
|
+
Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
|
2509
|
+
Enabled: true
|
2510
|
+
VersionAdded: '0.17'
|
2511
|
+
VersionChanged: '1.31'
|
2358
2512
|
|
2359
2513
|
Lint/UselessMethodDefinition:
|
2360
2514
|
Description: 'Checks for useless method definitions.'
|
@@ -2363,6 +2517,11 @@ Lint/UselessMethodDefinition:
|
|
2363
2517
|
VersionChanged: '0.91'
|
2364
2518
|
Safe: false
|
2365
2519
|
|
2520
|
+
Lint/UselessRescue:
|
2521
|
+
Description: 'Checks for useless `rescue`s.'
|
2522
|
+
Enabled: true
|
2523
|
+
VersionAdded: '1.43'
|
2524
|
+
|
2366
2525
|
Lint/UselessRuby2Keywords:
|
2367
2526
|
Description: 'Finds unnecessary uses of `ruby2_keywords`.'
|
2368
2527
|
Enabled: true
|
@@ -2371,10 +2530,9 @@ Lint/UselessRuby2Keywords:
|
|
2371
2530
|
Lint/UselessSetterCall:
|
2372
2531
|
Description: 'Checks for useless setter call to a local variable.'
|
2373
2532
|
Enabled: true
|
2374
|
-
|
2533
|
+
Safe: false
|
2375
2534
|
VersionAdded: '0.13'
|
2376
2535
|
VersionChanged: '1.2'
|
2377
|
-
Safe: false
|
2378
2536
|
|
2379
2537
|
Lint/UselessTimes:
|
2380
2538
|
Description: 'Checks for useless `Integer#times` calls.'
|
@@ -2402,9 +2560,12 @@ Metrics/AbcSize:
|
|
2402
2560
|
VersionChanged: '1.5'
|
2403
2561
|
# The ABC size is a calculated magnitude, so this number can be an Integer or
|
2404
2562
|
# a Float.
|
2405
|
-
|
2563
|
+
AllowedMethods: []
|
2564
|
+
AllowedPatterns: []
|
2406
2565
|
CountRepeatedAttributes: true
|
2407
2566
|
Max: 30
|
2567
|
+
Exclude:
|
2568
|
+
- 'db/migrate/**/*'
|
2408
2569
|
|
2409
2570
|
Metrics/BlockLength:
|
2410
2571
|
Description: 'Avoid long blocks with many lines.'
|
@@ -2414,13 +2575,14 @@ Metrics/BlockLength:
|
|
2414
2575
|
CountComments: false # count full line comments?
|
2415
2576
|
Max: 50
|
2416
2577
|
CountAsOne: []
|
2417
|
-
|
2418
|
-
IgnoredMethods:
|
2578
|
+
AllowedMethods:
|
2419
2579
|
# By default, exclude the `#refine` method, as it tends to have larger
|
2420
2580
|
# associated blocks.
|
2421
2581
|
- refine
|
2582
|
+
AllowedPatterns: []
|
2422
2583
|
Exclude:
|
2423
2584
|
- '**/*.gemspec'
|
2585
|
+
- 'app/avo/resources/**/*.rb'
|
2424
2586
|
|
2425
2587
|
Metrics/BlockNesting:
|
2426
2588
|
Description: 'Avoid excessive block nesting.'
|
@@ -2440,6 +2602,12 @@ Metrics/ClassLength:
|
|
2440
2602
|
Max: 300
|
2441
2603
|
CountAsOne: []
|
2442
2604
|
|
2605
|
+
Metrics/CollectionLiteralLength:
|
2606
|
+
Description: 'Checks for `Array` or `Hash` literals with many entries.'
|
2607
|
+
Enabled: true
|
2608
|
+
VersionAdded: '1.47'
|
2609
|
+
LengthThreshold: 250
|
2610
|
+
|
2443
2611
|
# Avoid complex methods.
|
2444
2612
|
Metrics/CyclomaticComplexity:
|
2445
2613
|
Description: >-
|
@@ -2448,8 +2616,11 @@ Metrics/CyclomaticComplexity:
|
|
2448
2616
|
Enabled: true
|
2449
2617
|
VersionAdded: '0.25'
|
2450
2618
|
VersionChanged: '0.81'
|
2451
|
-
|
2619
|
+
AllowedMethods: []
|
2620
|
+
AllowedPatterns: []
|
2452
2621
|
Max: 10
|
2622
|
+
Exclude:
|
2623
|
+
- 'db/migrate/**/*'
|
2453
2624
|
|
2454
2625
|
Metrics/MethodLength:
|
2455
2626
|
Description: 'Avoid methods longer than 10 lines of code.'
|
@@ -2460,8 +2631,8 @@ Metrics/MethodLength:
|
|
2460
2631
|
CountComments: false # count full line comments?
|
2461
2632
|
Max: 50
|
2462
2633
|
CountAsOne: []
|
2463
|
-
|
2464
|
-
|
2634
|
+
AllowedMethods: []
|
2635
|
+
AllowedPatterns: []
|
2465
2636
|
|
2466
2637
|
Metrics/ModuleLength:
|
2467
2638
|
Description: 'Avoid modules longer than 100 lines of code.'
|
@@ -2489,8 +2660,11 @@ Metrics/PerceivedComplexity:
|
|
2489
2660
|
Enabled: true
|
2490
2661
|
VersionAdded: '0.25'
|
2491
2662
|
VersionChanged: '0.81'
|
2492
|
-
|
2663
|
+
AllowedMethods: []
|
2664
|
+
AllowedPatterns: []
|
2493
2665
|
Max: 8
|
2666
|
+
Exclude:
|
2667
|
+
- 'db/migrate/**/*'
|
2494
2668
|
|
2495
2669
|
################## Migration #############################
|
2496
2670
|
|
@@ -2498,7 +2672,7 @@ Migration/DepartmentName:
|
|
2498
2672
|
Description: >-
|
2499
2673
|
Check that cop names in rubocop:disable (etc) comments are
|
2500
2674
|
given with department name.
|
2501
|
-
Enabled:
|
2675
|
+
Enabled: false
|
2502
2676
|
VersionAdded: '0.75'
|
2503
2677
|
|
2504
2678
|
#################### Naming ##############################
|
@@ -2660,13 +2834,13 @@ Naming/HeredocDelimiterNaming:
|
|
2660
2834
|
Enabled: true
|
2661
2835
|
VersionAdded: '0.50'
|
2662
2836
|
ForbiddenDelimiters:
|
2663
|
-
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
|
2837
|
+
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/i'
|
2664
2838
|
|
2665
2839
|
Naming/InclusiveLanguage:
|
2666
2840
|
Description: 'Recommend the use of inclusive language instead of problematic terms.'
|
2667
|
-
Enabled:
|
2841
|
+
Enabled: true
|
2668
2842
|
VersionAdded: '1.18'
|
2669
|
-
VersionChanged: '1.
|
2843
|
+
VersionChanged: '1.49'
|
2670
2844
|
CheckIdentifiers: true
|
2671
2845
|
CheckConstants: true
|
2672
2846
|
CheckVariables: true
|
@@ -2678,12 +2852,12 @@ Naming/InclusiveLanguage:
|
|
2678
2852
|
whitelist:
|
2679
2853
|
Regex: !ruby/regexp '/white[-_\s]?list/'
|
2680
2854
|
Suggestions:
|
2681
|
-
-
|
2855
|
+
- allow_list
|
2682
2856
|
- permit
|
2683
2857
|
blacklist:
|
2684
2858
|
Regex: !ruby/regexp '/black[-_\s]?list/'
|
2685
2859
|
Suggestions:
|
2686
|
-
-
|
2860
|
+
- deny_list
|
2687
2861
|
- block
|
2688
2862
|
slave:
|
2689
2863
|
WholeWord: true
|
@@ -2718,32 +2892,31 @@ Naming/MethodName:
|
|
2718
2892
|
# - '\A\s*onSelectionCleared\s*'
|
2719
2893
|
#
|
2720
2894
|
AllowedPatterns: []
|
2721
|
-
# IgnoredPatterns: [] # deprecated
|
2722
2895
|
|
2723
2896
|
Naming/MethodParameterName:
|
2724
2897
|
Description: >-
|
2725
2898
|
Checks for method parameter names that contain capital letters,
|
2726
2899
|
end in numbers, or do not meet a minimal length.
|
2727
|
-
Enabled:
|
2900
|
+
Enabled: false
|
2728
2901
|
VersionAdded: '0.53'
|
2729
2902
|
VersionChanged: '0.77'
|
2730
2903
|
# Parameter names may be equal to or greater than this value
|
2731
|
-
MinNameLength:
|
2904
|
+
MinNameLength: 3
|
2732
2905
|
AllowNamesEndingInNumbers: true
|
2733
2906
|
# Allowed names that will not register an offense
|
2734
2907
|
AllowedNames:
|
2908
|
+
- as
|
2735
2909
|
- at
|
2736
2910
|
- by
|
2911
|
+
- cc
|
2737
2912
|
- db
|
2738
2913
|
- id
|
2914
|
+
- if
|
2739
2915
|
- in
|
2740
2916
|
- io
|
2741
2917
|
- ip
|
2742
2918
|
- of
|
2743
2919
|
- 'on'
|
2744
|
-
- os
|
2745
|
-
- pp
|
2746
|
-
- to
|
2747
2920
|
# Forbidden names that will register an offense
|
2748
2921
|
ForbiddenNames: []
|
2749
2922
|
|
@@ -2808,7 +2981,7 @@ Naming/VariableNumber:
|
|
2808
2981
|
- normalcase
|
2809
2982
|
- non_integer
|
2810
2983
|
CheckMethodNames: true
|
2811
|
-
CheckSymbols:
|
2984
|
+
CheckSymbols: false
|
2812
2985
|
AllowedIdentifiers:
|
2813
2986
|
- capture3 # Open3.capture3
|
2814
2987
|
- iso8601 # Time#iso8601
|
@@ -2816,6 +2989,7 @@ Naming/VariableNumber:
|
|
2816
2989
|
- rfc822 # Time#rfc822
|
2817
2990
|
- rfc2822 # Time#rfc2822
|
2818
2991
|
- rfc3339 # DateTime.rfc3339
|
2992
|
+
- x86_64 # Allowed by default as an underscore separated CPU architecture name
|
2819
2993
|
AllowedPatterns: []
|
2820
2994
|
|
2821
2995
|
#################### Security ##############################
|
@@ -2823,7 +2997,9 @@ Naming/VariableNumber:
|
|
2823
2997
|
Security/CompoundHash:
|
2824
2998
|
Description: 'When overwriting Object#hash to combine values, prefer delegating to Array#hash over writing a custom implementation.'
|
2825
2999
|
Enabled: true
|
3000
|
+
Safe: false
|
2826
3001
|
VersionAdded: '1.28'
|
3002
|
+
VersionChanged: '1.51'
|
2827
3003
|
|
2828
3004
|
Security/Eval:
|
2829
3005
|
Description: 'The use of eval represents a serious security risk.'
|
@@ -2878,7 +3054,7 @@ Security/YAMLLoad:
|
|
2878
3054
|
|
2879
3055
|
Style/AccessModifierDeclarations:
|
2880
3056
|
Description: 'Checks style of how access modifiers are used.'
|
2881
|
-
Enabled:
|
3057
|
+
Enabled: false
|
2882
3058
|
VersionAdded: '0.57'
|
2883
3059
|
VersionChanged: '0.81'
|
2884
3060
|
EnforcedStyle: group
|
@@ -2886,6 +3062,7 @@ Style/AccessModifierDeclarations:
|
|
2886
3062
|
- inline
|
2887
3063
|
- group
|
2888
3064
|
AllowModifiersOnSymbols: true
|
3065
|
+
SafeAutoCorrect: false
|
2889
3066
|
|
2890
3067
|
Style/AccessorGrouping:
|
2891
3068
|
Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
|
@@ -2927,8 +3104,21 @@ Style/ArgumentsForwarding:
|
|
2927
3104
|
Description: 'Use arguments forwarding.'
|
2928
3105
|
StyleGuide: '#arguments-forwarding'
|
2929
3106
|
Enabled: true
|
2930
|
-
AllowOnlyRestArgument: true
|
3107
|
+
# AllowOnlyRestArgument: true
|
3108
|
+
UseAnonymousForwarding: true
|
3109
|
+
RedundantRestArgumentNames:
|
3110
|
+
- args
|
3111
|
+
- arguments
|
3112
|
+
RedundantKeywordRestArgumentNames:
|
3113
|
+
- kwargs
|
3114
|
+
- options
|
3115
|
+
- opts
|
3116
|
+
RedundantBlockArgumentNames:
|
3117
|
+
- blk
|
3118
|
+
- block
|
3119
|
+
- proc
|
2931
3120
|
VersionAdded: '1.1'
|
3121
|
+
VersionChanged: '1.58'
|
2932
3122
|
|
2933
3123
|
Style/ArrayCoercion:
|
2934
3124
|
Description: >-
|
@@ -2939,6 +3129,19 @@ Style/ArrayCoercion:
|
|
2939
3129
|
Enabled: true
|
2940
3130
|
VersionAdded: '0.88'
|
2941
3131
|
|
3132
|
+
Style/ArrayFirstLast:
|
3133
|
+
Description: 'Use `arr.first` and `arr.last` instead of `arr[0]` and `arr[-1]`.'
|
3134
|
+
Reference: '#first-and-last'
|
3135
|
+
Enabled: false
|
3136
|
+
VersionAdded: '1.58'
|
3137
|
+
Safe: false
|
3138
|
+
|
3139
|
+
Style/ArrayIntersect:
|
3140
|
+
Description: 'Use `array1.intersect?(array2)` instead of `(array1 & array2).any?`.'
|
3141
|
+
Enabled: true
|
3142
|
+
Safe: false
|
3143
|
+
VersionAdded: '1.40'
|
3144
|
+
|
2942
3145
|
Style/ArrayJoin:
|
2943
3146
|
Description: 'Use Array#join instead of Array#*.'
|
2944
3147
|
StyleGuide: '#array-join'
|
@@ -3020,7 +3223,7 @@ Style/BlockDelimiters:
|
|
3020
3223
|
# This looks at the usage of a block's method to determine its type (e.g. is
|
3021
3224
|
# the result of a `map` assigned to a variable or passed to another
|
3022
3225
|
# method) but exceptions are permitted in the `ProceduralMethods`,
|
3023
|
-
# `FunctionalMethods` and `
|
3226
|
+
# `FunctionalMethods` and `AllowedMethods` sections below.
|
3024
3227
|
- semantic
|
3025
3228
|
# The `braces_for_chaining` style enforces braces around single line blocks
|
3026
3229
|
# and do..end around multi-line blocks, except for multi-line blocks whose
|
@@ -3061,7 +3264,7 @@ Style/BlockDelimiters:
|
|
3061
3264
|
- let!
|
3062
3265
|
- subject
|
3063
3266
|
- watch
|
3064
|
-
|
3267
|
+
AllowedMethods:
|
3065
3268
|
# Methods that can be either procedural or functional and cannot be
|
3066
3269
|
# categorised from their usage alone, e.g.
|
3067
3270
|
#
|
@@ -3078,6 +3281,7 @@ Style/BlockDelimiters:
|
|
3078
3281
|
- lambda
|
3079
3282
|
- proc
|
3080
3283
|
- it
|
3284
|
+
AllowedPatterns: []
|
3081
3285
|
# The AllowBracesOnProceduralOneLiners option is ignored unless the
|
3082
3286
|
# EnforcedStyle is set to `semantic`. If so:
|
3083
3287
|
#
|
@@ -3101,7 +3305,7 @@ Style/BlockDelimiters:
|
|
3101
3305
|
# collection.each do |element| puts element end
|
3102
3306
|
AllowBracesOnProceduralOneLiners: false
|
3103
3307
|
# The BracesRequiredMethods overrides all other configurations except
|
3104
|
-
#
|
3308
|
+
# AllowedMethods. It can be used to enforce that all blocks for specific
|
3105
3309
|
# methods use braces. For example, you can use this to enforce Sorbet
|
3106
3310
|
# signatures use braces even when the rest of your codebase enforces
|
3107
3311
|
# the `line_count_based` style.
|
@@ -3122,6 +3326,15 @@ Style/CaseEquality:
|
|
3122
3326
|
# # good
|
3123
3327
|
# String === "string"
|
3124
3328
|
AllowOnConstant: false
|
3329
|
+
# If `AllowOnSelfClass` option is enabled, the cop will ignore violations when the receiver of
|
3330
|
+
# the case equality operator is `self.class`.
|
3331
|
+
#
|
3332
|
+
# # bad
|
3333
|
+
# some_class === object
|
3334
|
+
#
|
3335
|
+
# # good
|
3336
|
+
# self.class === object
|
3337
|
+
AllowOnSelfClass: false
|
3125
3338
|
|
3126
3339
|
Style/CaseLikeIf:
|
3127
3340
|
Description: 'Identifies places where `if-elsif` constructions can be replaced with `case-when`.'
|
@@ -3129,6 +3342,9 @@ Style/CaseLikeIf:
|
|
3129
3342
|
Enabled: true
|
3130
3343
|
Safe: false
|
3131
3344
|
VersionAdded: '0.88'
|
3345
|
+
VersionChanged: '1.48'
|
3346
|
+
# `MinBranchesCount` defines the number of branches `if` needs to have to trigger this cop.
|
3347
|
+
MinBranchesCount: 3
|
3132
3348
|
|
3133
3349
|
Style/CharacterLiteral:
|
3134
3350
|
Description: 'Checks for uses of character literals.'
|
@@ -3141,11 +3357,11 @@ Style/ClassAndModuleChildren:
|
|
3141
3357
|
StyleGuide: '#namespace-definition'
|
3142
3358
|
# Moving from compact to nested children requires knowledge of whether the
|
3143
3359
|
# outer parent is a module or a class. Moving from nested to compact requires
|
3144
|
-
# verification that the outer parent is defined elsewhere.
|
3360
|
+
# verification that the outer parent is defined elsewhere. RuboCop does not
|
3145
3361
|
# have the knowledge to perform either operation safely and thus requires
|
3146
3362
|
# manual oversight.
|
3147
3363
|
SafeAutoCorrect: false
|
3148
|
-
Enabled:
|
3364
|
+
Enabled: false
|
3149
3365
|
VersionAdded: '0.19'
|
3150
3366
|
#
|
3151
3367
|
# Basically there are two different styles:
|
@@ -3180,11 +3396,14 @@ Style/ClassEqualityComparison:
|
|
3180
3396
|
Description: 'Enforces the use of `Object#instance_of?` instead of class comparison for equality.'
|
3181
3397
|
StyleGuide: '#instance-of-vs-class-comparison'
|
3182
3398
|
Enabled: true
|
3399
|
+
SafeAutoCorrect: false
|
3183
3400
|
VersionAdded: '0.93'
|
3184
|
-
|
3401
|
+
VersionChanged: '1.57'
|
3402
|
+
AllowedMethods:
|
3185
3403
|
- ==
|
3186
3404
|
- equal?
|
3187
3405
|
- eql?
|
3406
|
+
AllowedPatterns: []
|
3188
3407
|
|
3189
3408
|
Style/ClassMethods:
|
3190
3409
|
Description: 'Use self when defining module/class methods.'
|
@@ -3215,6 +3434,7 @@ Style/CollectionCompact:
|
|
3215
3434
|
Safe: false
|
3216
3435
|
VersionAdded: '1.2'
|
3217
3436
|
VersionChanged: '1.3'
|
3437
|
+
AllowedReceivers: []
|
3218
3438
|
|
3219
3439
|
# Align with the style guide.
|
3220
3440
|
Style/CollectionMethods:
|
@@ -3233,6 +3453,7 @@ Style/CollectionMethods:
|
|
3233
3453
|
PreferredMethods:
|
3234
3454
|
collect: 'map'
|
3235
3455
|
collect!: 'map!'
|
3456
|
+
collect_concat: 'flat_map'
|
3236
3457
|
inject: 'reduce'
|
3237
3458
|
detect: 'find'
|
3238
3459
|
find_all: 'select'
|
@@ -3305,6 +3526,17 @@ Style/CommentedKeyword:
|
|
3305
3526
|
VersionAdded: '0.51'
|
3306
3527
|
VersionChanged: '1.19'
|
3307
3528
|
|
3529
|
+
Style/ComparableClamp:
|
3530
|
+
Description: 'Enforces the use of `Comparable#clamp` instead of comparison by minimum and maximum.'
|
3531
|
+
Enabled: true
|
3532
|
+
VersionAdded: '1.44'
|
3533
|
+
|
3534
|
+
Style/ConcatArrayLiterals:
|
3535
|
+
Description: 'Enforces the use of `Array#push(item)` instead of `Array#concat([item])` to avoid redundant array literals.'
|
3536
|
+
Enabled: true
|
3537
|
+
Safe: false
|
3538
|
+
VersionAdded: '1.41'
|
3539
|
+
|
3308
3540
|
Style/ConditionalAssignment:
|
3309
3541
|
Description: >-
|
3310
3542
|
Use the return value of `if` and `case` statements for
|
@@ -3360,10 +3592,18 @@ Style/Copyright:
|
|
3360
3592
|
Notice: '^Copyright (\(c\) )?2[0-9]{3} .+'
|
3361
3593
|
AutocorrectNotice: ''
|
3362
3594
|
|
3595
|
+
Style/DataInheritance:
|
3596
|
+
Description: 'Checks for inheritance from Data.define.'
|
3597
|
+
StyleGuide: '#no-extend-data-define'
|
3598
|
+
Enabled: true
|
3599
|
+
SafeAutoCorrect: false
|
3600
|
+
VersionAdded: '1.49'
|
3601
|
+
VersionChanged: '1.51'
|
3602
|
+
|
3363
3603
|
Style/DateTime:
|
3364
3604
|
Description: 'Use Time over DateTime.'
|
3365
|
-
StyleGuide: '#date
|
3366
|
-
Enabled:
|
3605
|
+
StyleGuide: '#date-time'
|
3606
|
+
Enabled: true
|
3367
3607
|
VersionAdded: '0.51'
|
3368
3608
|
VersionChanged: '0.92'
|
3369
3609
|
SafeAutoCorrect: false
|
@@ -3383,6 +3623,12 @@ Style/Dir:
|
|
3383
3623
|
Enabled: true
|
3384
3624
|
VersionAdded: '0.50'
|
3385
3625
|
|
3626
|
+
Style/DirEmpty:
|
3627
|
+
Description: >-
|
3628
|
+
Prefer to use `Dir.empty?('path/to/dir')` when checking if a directory is empty.
|
3629
|
+
Enabled: true
|
3630
|
+
VersionAdded: '1.48'
|
3631
|
+
|
3386
3632
|
Style/DisableCopsWithinSourceCodeDirective:
|
3387
3633
|
Description: >-
|
3388
3634
|
Forbids disabling/enabling cops within source code.
|
@@ -3471,6 +3717,12 @@ Style/EmptyElse:
|
|
3471
3717
|
- empty
|
3472
3718
|
- nil
|
3473
3719
|
- both
|
3720
|
+
AllowComments: false
|
3721
|
+
|
3722
|
+
Style/EmptyHeredoc:
|
3723
|
+
Description: 'Checks for using empty heredoc to reduce redundancy.'
|
3724
|
+
Enabled: true
|
3725
|
+
VersionAdded: '1.32'
|
3474
3726
|
|
3475
3727
|
Style/EmptyLambdaParameter:
|
3476
3728
|
Description: 'Omit parens for empty lambda parameters.'
|
@@ -3537,6 +3789,11 @@ Style/EvenOdd:
|
|
3537
3789
|
VersionAdded: '0.12'
|
3538
3790
|
VersionChanged: '0.29'
|
3539
3791
|
|
3792
|
+
Style/ExactRegexpMatch:
|
3793
|
+
Description: 'Checks for exact regexp match inside Regexp literals.'
|
3794
|
+
Enabled: true
|
3795
|
+
VersionAdded: '1.51'
|
3796
|
+
|
3540
3797
|
Style/ExpandPathArguments:
|
3541
3798
|
Description: "Use `expand_path(__dir__)` instead of `expand_path('..', __FILE__)`."
|
3542
3799
|
Enabled: true
|
@@ -3572,6 +3829,13 @@ Style/FetchEnvVar:
|
|
3572
3829
|
# Environment variables to be excluded from the inspection.
|
3573
3830
|
AllowedVars: []
|
3574
3831
|
|
3832
|
+
Style/FileEmpty:
|
3833
|
+
Description: >-
|
3834
|
+
Prefer to use `File.empty?('path/to/file')` when checking if a file is empty.
|
3835
|
+
Enabled: true
|
3836
|
+
Safe: false
|
3837
|
+
VersionAdded: '1.48'
|
3838
|
+
|
3575
3839
|
Style/FileRead:
|
3576
3840
|
Description: 'Favor `File.(bin)read` convenience methods.'
|
3577
3841
|
StyleGuide: '#file-read'
|
@@ -3617,7 +3881,7 @@ Style/FormatString:
|
|
3617
3881
|
Enabled: true
|
3618
3882
|
VersionAdded: '0.19'
|
3619
3883
|
VersionChanged: '0.49'
|
3620
|
-
EnforcedStyle:
|
3884
|
+
EnforcedStyle: sprintf
|
3621
3885
|
SupportedStyles:
|
3622
3886
|
- format
|
3623
3887
|
- sprintf
|
@@ -3640,7 +3904,8 @@ Style/FormatStringToken:
|
|
3640
3904
|
MaxUnannotatedPlaceholdersAllowed: 1
|
3641
3905
|
VersionAdded: '0.49'
|
3642
3906
|
VersionChanged: '1.0'
|
3643
|
-
|
3907
|
+
AllowedMethods: []
|
3908
|
+
AllowedPatterns: []
|
3644
3909
|
|
3645
3910
|
Style/FrozenStringLiteralComment:
|
3646
3911
|
Description: >-
|
@@ -3685,7 +3950,7 @@ Style/GuardClause:
|
|
3685
3950
|
StyleGuide: '#no-nested-conditionals'
|
3686
3951
|
Enabled: true
|
3687
3952
|
VersionAdded: '0.20'
|
3688
|
-
VersionChanged: '1.
|
3953
|
+
VersionChanged: '1.31'
|
3689
3954
|
# `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
|
3690
3955
|
# needs to have to trigger this cop
|
3691
3956
|
MinBodyLength: 1
|
@@ -3707,8 +3972,9 @@ Style/HashConversion:
|
|
3707
3972
|
Description: 'Avoid Hash[] in favor of ary.to_h or literal hashes.'
|
3708
3973
|
StyleGuide: '#avoid-hash-constructor'
|
3709
3974
|
Enabled: true
|
3975
|
+
SafeAutoCorrect: false
|
3710
3976
|
VersionAdded: '1.10'
|
3711
|
-
VersionChanged: '1.
|
3977
|
+
VersionChanged: '1.55'
|
3712
3978
|
AllowSplatArgument: true
|
3713
3979
|
|
3714
3980
|
Style/HashEachMethods:
|
@@ -3718,14 +3984,17 @@ Style/HashEachMethods:
|
|
3718
3984
|
Safe: false
|
3719
3985
|
VersionAdded: '0.80'
|
3720
3986
|
VersionChanged: '1.16'
|
3721
|
-
AllowedReceivers:
|
3987
|
+
AllowedReceivers:
|
3988
|
+
- Thread.current
|
3722
3989
|
|
3723
3990
|
Style/HashExcept:
|
3724
3991
|
Description: >-
|
3725
3992
|
Checks for usages of `Hash#reject`, `Hash#select`, and `Hash#filter` methods
|
3726
3993
|
that can be replaced with `Hash#except` method.
|
3727
3994
|
Enabled: true
|
3995
|
+
Safe: false
|
3728
3996
|
VersionAdded: '1.7'
|
3997
|
+
VersionChanged: '1.39'
|
3729
3998
|
|
3730
3999
|
Style/HashLikeCase:
|
3731
4000
|
Description: >-
|
@@ -3756,7 +4025,7 @@ Style/HashSyntax:
|
|
3756
4025
|
# enforces both ruby19 and no_mixed_keys styles
|
3757
4026
|
- ruby19_no_mixed_keys
|
3758
4027
|
# Force hashes that have a hash value omission
|
3759
|
-
EnforcedShorthandSyntax:
|
4028
|
+
EnforcedShorthandSyntax: either
|
3760
4029
|
SupportedShorthandSyntax:
|
3761
4030
|
# forces use of the 3.1 syntax (e.g. {foo:}) when the hash key and value are the same.
|
3762
4031
|
- always
|
@@ -3764,6 +4033,8 @@ Style/HashSyntax:
|
|
3764
4033
|
- never
|
3765
4034
|
# accepts both shorthand and explicit use of hash literal value.
|
3766
4035
|
- either
|
4036
|
+
# forces use of the 3.1 syntax only if all values can be omitted in the hash.
|
4037
|
+
- consistent
|
3767
4038
|
# Force hashes that have a symbol value to use hash rockets
|
3768
4039
|
UseHashRocketsWithSymbolValues: false
|
3769
4040
|
# Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
|
@@ -3876,16 +4147,35 @@ Style/InverseMethods:
|
|
3876
4147
|
:=~: :!~
|
3877
4148
|
:<: :>=
|
3878
4149
|
:>: :<=
|
3879
|
-
# `ActiveSupport` defines some common inverse methods. They are listed below,
|
3880
|
-
# and not enabled by default.
|
3881
|
-
# :present?: :blank?,
|
3882
|
-
# :include?: :exclude?
|
3883
4150
|
# `InverseBlocks` are methods that are inverted by inverting the return
|
3884
4151
|
# of the block that is passed to the method
|
3885
4152
|
InverseBlocks:
|
3886
4153
|
:select: :reject
|
3887
4154
|
:select!: :reject!
|
3888
4155
|
|
4156
|
+
Style/InvertibleUnlessCondition:
|
4157
|
+
Description: 'Favor `if` with inverted condition over `unless`.'
|
4158
|
+
Enabled: false
|
4159
|
+
Safe: false
|
4160
|
+
VersionAdded: '1.44'
|
4161
|
+
VersionChanged: '1.50'
|
4162
|
+
# `InverseMethods` are methods that can be inverted in a `unless` condition.
|
4163
|
+
# The relationship of inverse methods needs to be defined in both directions.
|
4164
|
+
# Keys and values both need to be defined as symbols.
|
4165
|
+
InverseMethods:
|
4166
|
+
:!=: :==
|
4167
|
+
:>: :<=
|
4168
|
+
:<=: :>
|
4169
|
+
:<: :>=
|
4170
|
+
:>=: :<
|
4171
|
+
:!~: :=~
|
4172
|
+
:zero?: :nonzero?
|
4173
|
+
:nonzero?: :zero?
|
4174
|
+
:any?: :none?
|
4175
|
+
:none?: :any?
|
4176
|
+
:even?: :odd?
|
4177
|
+
:odd?: :even?
|
4178
|
+
|
3889
4179
|
Style/IpAddresses:
|
3890
4180
|
Description: "Don't include literal IP addresses in code."
|
3891
4181
|
Enabled: false
|
@@ -3911,7 +4201,7 @@ Style/KeywordParametersOrder:
|
|
3911
4201
|
Style/Lambda:
|
3912
4202
|
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
3913
4203
|
StyleGuide: '#lambda-multi-line'
|
3914
|
-
Enabled:
|
4204
|
+
Enabled: false
|
3915
4205
|
VersionAdded: '0.9'
|
3916
4206
|
VersionChanged: '0.40'
|
3917
4207
|
EnforcedStyle: line_count_dependent
|
@@ -3940,6 +4230,26 @@ Style/LineEndConcatenation:
|
|
3940
4230
|
VersionAdded: '0.18'
|
3941
4231
|
VersionChanged: '0.64'
|
3942
4232
|
|
4233
|
+
Style/MagicCommentFormat:
|
4234
|
+
Description: 'Use a consistent style for magic comments.'
|
4235
|
+
Enabled: true
|
4236
|
+
VersionAdded: '1.35'
|
4237
|
+
EnforcedStyle: snake_case
|
4238
|
+
SupportedStyles:
|
4239
|
+
# `snake` will enforce the magic comment is written
|
4240
|
+
# in snake case (words separated by underscores).
|
4241
|
+
# Eg: froze_string_literal: true
|
4242
|
+
- snake_case
|
4243
|
+
# `kebab` will enforce the magic comment is written
|
4244
|
+
# in kebab case (words separated by hyphens).
|
4245
|
+
# Eg: froze-string-literal: true
|
4246
|
+
- kebab_case
|
4247
|
+
DirectiveCapitalization: lowercase
|
4248
|
+
ValueCapitalization: ~
|
4249
|
+
SupportedCapitalizations:
|
4250
|
+
- lowercase
|
4251
|
+
- uppercase
|
4252
|
+
|
3943
4253
|
Style/MapCompactWithConditionalBlock:
|
3944
4254
|
Description: 'Prefer `select` or `reject` over `map { ... }.compact`.'
|
3945
4255
|
Enabled: true
|
@@ -3951,6 +4261,12 @@ Style/MapToHash:
|
|
3951
4261
|
VersionAdded: '1.24'
|
3952
4262
|
Safe: false
|
3953
4263
|
|
4264
|
+
Style/MapToSet:
|
4265
|
+
Description: 'Prefer `to_set` with a block over `map.to_set`.'
|
4266
|
+
Enabled: true
|
4267
|
+
Safe: false
|
4268
|
+
VersionAdded: '1.42'
|
4269
|
+
|
3954
4270
|
Style/MethodCallWithArgsParentheses:
|
3955
4271
|
Description: 'Use parentheses for method calls with arguments.'
|
3956
4272
|
StyleGuide: '#method-invocation-parens'
|
@@ -3958,9 +4274,8 @@ Style/MethodCallWithArgsParentheses:
|
|
3958
4274
|
VersionAdded: '0.47'
|
3959
4275
|
VersionChanged: '1.7'
|
3960
4276
|
IgnoreMacros: true
|
3961
|
-
|
4277
|
+
AllowedMethods: []
|
3962
4278
|
AllowedPatterns: []
|
3963
|
-
# IgnoredPatterns: [] # deprecated
|
3964
4279
|
IncludedMacros: []
|
3965
4280
|
AllowParenthesesInMultilineCall: false
|
3966
4281
|
AllowParenthesesInChaining: false
|
@@ -3975,7 +4290,8 @@ Style/MethodCallWithoutArgsParentheses:
|
|
3975
4290
|
Description: 'Do not use parentheses for method calls with no arguments.'
|
3976
4291
|
StyleGuide: '#method-invocation-parens'
|
3977
4292
|
Enabled: true
|
3978
|
-
|
4293
|
+
AllowedMethods: []
|
4294
|
+
AllowedPatterns: []
|
3979
4295
|
VersionAdded: '0.47'
|
3980
4296
|
VersionChanged: '0.55'
|
3981
4297
|
|
@@ -4006,6 +4322,12 @@ Style/MinMax:
|
|
4006
4322
|
Enabled: true
|
4007
4323
|
VersionAdded: '0.50'
|
4008
4324
|
|
4325
|
+
Style/MinMaxComparison:
|
4326
|
+
Description: 'Enforces the use of `max` or `min` instead of comparison for greater or less.'
|
4327
|
+
Enabled: true
|
4328
|
+
Safe: false
|
4329
|
+
VersionAdded: '1.42'
|
4330
|
+
|
4009
4331
|
Style/MissingElse:
|
4010
4332
|
Description: >-
|
4011
4333
|
Require if/case expressions to have an else branches.
|
@@ -4129,6 +4451,7 @@ Style/MultipleComparison:
|
|
4129
4451
|
VersionAdded: '0.49'
|
4130
4452
|
VersionChanged: '1.1'
|
4131
4453
|
AllowMethodComparison: true
|
4454
|
+
ComparisonsThreshold: 2
|
4132
4455
|
|
4133
4456
|
Style/MutableConstant:
|
4134
4457
|
Description: 'Do not assign mutable objects to constants.'
|
@@ -4320,24 +4643,24 @@ Style/NumericLiterals:
|
|
4320
4643
|
Add underscores to large numeric literals to improve their
|
4321
4644
|
readability.
|
4322
4645
|
StyleGuide: '#underscores-in-numerics'
|
4323
|
-
Enabled:
|
4646
|
+
Enabled: false
|
4324
4647
|
VersionAdded: '0.9'
|
4325
4648
|
VersionChanged: '0.48'
|
4326
4649
|
MinDigits: 5
|
4327
4650
|
Strict: false
|
4328
4651
|
# You can specify allowed numbers. (e.g. port number 3000, 8080, and etc)
|
4329
4652
|
AllowedNumbers: []
|
4653
|
+
AllowedPatterns: []
|
4330
4654
|
|
4331
4655
|
Style/NumericPredicate:
|
4332
4656
|
Description: >-
|
4333
4657
|
Checks for the use of predicate- or comparison methods for
|
4334
4658
|
numeric comparisons.
|
4335
4659
|
StyleGuide: '#predicate-methods'
|
4336
|
-
Safe: false
|
4337
4660
|
# This will change to a new method call which isn't guaranteed to be on the
|
4338
4661
|
# object. Switching these methods has to be done with knowledge of the types
|
4339
4662
|
# of the variables which rubocop doesn't have.
|
4340
|
-
|
4663
|
+
Safe: false
|
4341
4664
|
Enabled: true
|
4342
4665
|
VersionAdded: '0.42'
|
4343
4666
|
VersionChanged: '0.59'
|
@@ -4345,7 +4668,8 @@ Style/NumericPredicate:
|
|
4345
4668
|
SupportedStyles:
|
4346
4669
|
- predicate
|
4347
4670
|
- comparison
|
4348
|
-
|
4671
|
+
AllowedMethods: []
|
4672
|
+
AllowedPatterns: []
|
4349
4673
|
# Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
|
4350
4674
|
# false positives.
|
4351
4675
|
Exclude:
|
@@ -4382,10 +4706,19 @@ Style/OpenStructUse:
|
|
4382
4706
|
- https://docs.ruby-lang.org/en/3.0.0/OpenStruct.html#class-OpenStruct-label-Caveats
|
4383
4707
|
|
4384
4708
|
Enabled: true
|
4709
|
+
Safe: false
|
4385
4710
|
VersionAdded: '1.23'
|
4711
|
+
VersionChanged: '1.51'
|
4712
|
+
|
4713
|
+
Style/OperatorMethodCall:
|
4714
|
+
Description: 'Checks for redundant dot before operator method call.'
|
4715
|
+
StyleGuide: '#operator-method-call'
|
4716
|
+
Enabled: true
|
4717
|
+
VersionAdded: '1.37'
|
4386
4718
|
|
4387
4719
|
Style/OptionHash:
|
4388
4720
|
Description: "Don't use option hashes when you can use keyword arguments."
|
4721
|
+
StyleGuide: '#keyword-arguments-vs-option-hashes'
|
4389
4722
|
Enabled: false
|
4390
4723
|
VersionAdded: '0.33'
|
4391
4724
|
VersionChanged: '0.34'
|
@@ -4455,6 +4788,7 @@ Style/PercentLiteralDelimiters:
|
|
4455
4788
|
default: {}
|
4456
4789
|
'%': '{}'
|
4457
4790
|
'%i': '{}'
|
4791
|
+
'%I': '{}'
|
4458
4792
|
'%q': '{}'
|
4459
4793
|
'%Q': '{}'
|
4460
4794
|
'%r': '{}'
|
@@ -4533,10 +4867,16 @@ Style/RedundantArgument:
|
|
4533
4867
|
Enabled: true
|
4534
4868
|
Safe: false
|
4535
4869
|
VersionAdded: '1.4'
|
4536
|
-
VersionChanged: '1.
|
4870
|
+
VersionChanged: '1.55'
|
4537
4871
|
Methods:
|
4538
4872
|
# Array#join
|
4539
4873
|
join: ''
|
4874
|
+
# Array#sum
|
4875
|
+
sum: 0
|
4876
|
+
# Kernel.#exit
|
4877
|
+
exit: true
|
4878
|
+
# Kernel.#exit!
|
4879
|
+
exit!: false
|
4540
4880
|
# String#split
|
4541
4881
|
split: ' '
|
4542
4882
|
# String#chomp
|
@@ -4544,6 +4884,11 @@ Style/RedundantArgument:
|
|
4544
4884
|
# String#chomp!
|
4545
4885
|
chomp!: "\n"
|
4546
4886
|
|
4887
|
+
Style/RedundantArrayConstructor:
|
4888
|
+
Description: 'Checks for the instantiation of array using redundant `Array` constructor.'
|
4889
|
+
Enabled: true
|
4890
|
+
VersionAdded: '1.52'
|
4891
|
+
|
4547
4892
|
Style/RedundantAssignment:
|
4548
4893
|
Description: 'Checks for redundant assignment before returning.'
|
4549
4894
|
Enabled: true
|
@@ -4571,6 +4916,27 @@ Style/RedundantConditional:
|
|
4571
4916
|
Enabled: true
|
4572
4917
|
VersionAdded: '0.50'
|
4573
4918
|
|
4919
|
+
Style/RedundantConstantBase:
|
4920
|
+
Description: Avoid redundant `::` prefix on constant.
|
4921
|
+
Enabled: true
|
4922
|
+
VersionAdded: '1.40'
|
4923
|
+
|
4924
|
+
Style/RedundantCurrentDirectoryInPath:
|
4925
|
+
Description: 'Checks for uses a redundant current directory in path.'
|
4926
|
+
Enabled: true
|
4927
|
+
VersionAdded: '1.53'
|
4928
|
+
|
4929
|
+
Style/RedundantDoubleSplatHashBraces:
|
4930
|
+
Description: 'Checks for redundant uses of double splat hash braces.'
|
4931
|
+
Enabled: true
|
4932
|
+
VersionAdded: '1.41'
|
4933
|
+
|
4934
|
+
Style/RedundantEach:
|
4935
|
+
Description: 'Checks for redundant `each`.'
|
4936
|
+
Enabled: true
|
4937
|
+
Safe: false
|
4938
|
+
VersionAdded: '1.38'
|
4939
|
+
|
4574
4940
|
Style/RedundantException:
|
4575
4941
|
Description: "Checks for an obsolete RuntimeException argument in raise/fail."
|
4576
4942
|
StyleGuide: '#no-explicit-runtimeerror'
|
@@ -4599,12 +4965,26 @@ Style/RedundantFileExtensionInRequire:
|
|
4599
4965
|
Enabled: true
|
4600
4966
|
VersionAdded: '0.88'
|
4601
4967
|
|
4968
|
+
Style/RedundantFilterChain:
|
4969
|
+
Description: >-
|
4970
|
+
Identifies usages of `any?`, `empty?`, `none?` or `one?` predicate methods chained to
|
4971
|
+
`select`/`filter`/`find_all` and change them to use predicate method instead.
|
4972
|
+
Enabled: true
|
4973
|
+
SafeAutoCorrect: false
|
4974
|
+
VersionAdded: '1.52'
|
4975
|
+
VersionChanged: '1.57'
|
4976
|
+
|
4602
4977
|
Style/RedundantFreeze:
|
4603
4978
|
Description: "Checks usages of Object#freeze on immutable objects."
|
4604
4979
|
Enabled: true
|
4605
4980
|
VersionAdded: '0.34'
|
4606
4981
|
VersionChanged: '0.66'
|
4607
4982
|
|
4983
|
+
Style/RedundantHeredocDelimiterQuotes:
|
4984
|
+
Description: 'Checks for redundant heredoc delimiter quotes.'
|
4985
|
+
Enabled: true
|
4986
|
+
VersionAdded: '1.45'
|
4987
|
+
|
4608
4988
|
Style/RedundantInitialize:
|
4609
4989
|
Description: 'Checks for redundant `initialize` methods.'
|
4610
4990
|
Enabled: true
|
@@ -4620,6 +5000,11 @@ Style/RedundantInterpolation:
|
|
4620
5000
|
VersionAdded: '0.76'
|
4621
5001
|
VersionChanged: '1.30'
|
4622
5002
|
|
5003
|
+
Style/RedundantLineContinuation:
|
5004
|
+
Description: 'Check for redundant line continuation.'
|
5005
|
+
Enabled: true
|
5006
|
+
VersionAdded: '1.49'
|
5007
|
+
|
4623
5008
|
Style/RedundantParentheses:
|
4624
5009
|
Description: "Checks for parentheses that seem not to serve any purpose."
|
4625
5010
|
Enabled: true
|
@@ -4631,11 +5016,21 @@ Style/RedundantPercentQ:
|
|
4631
5016
|
Enabled: true
|
4632
5017
|
VersionAdded: '0.76'
|
4633
5018
|
|
5019
|
+
Style/RedundantRegexpArgument:
|
5020
|
+
Description: 'Identifies places where argument can be replaced from a deterministic regexp to a string.'
|
5021
|
+
Enabled: true
|
5022
|
+
VersionAdded: '1.53'
|
5023
|
+
|
4634
5024
|
Style/RedundantRegexpCharacterClass:
|
4635
5025
|
Description: 'Checks for unnecessary single-element Regexp character classes.'
|
4636
5026
|
Enabled: true
|
4637
5027
|
VersionAdded: '0.85'
|
4638
5028
|
|
5029
|
+
Style/RedundantRegexpConstructor:
|
5030
|
+
Description: 'Checks for the instantiation of regexp using redundant `Regexp.new` or `Regexp.compile`.'
|
5031
|
+
Enabled: true
|
5032
|
+
VersionAdded: '1.52'
|
5033
|
+
|
4639
5034
|
Style/RedundantRegexpEscape:
|
4640
5035
|
Description: 'Checks for redundant escapes in Regexps.'
|
4641
5036
|
Enabled: true
|
@@ -4682,6 +5077,11 @@ Style/RedundantSortBy:
|
|
4682
5077
|
Enabled: true
|
4683
5078
|
VersionAdded: '0.36'
|
4684
5079
|
|
5080
|
+
Style/RedundantStringEscape:
|
5081
|
+
Description: 'Checks for redundant escapes in string literals.'
|
5082
|
+
Enabled: true
|
5083
|
+
VersionAdded: '1.37'
|
5084
|
+
|
4685
5085
|
Style/RegexpLiteral:
|
4686
5086
|
Description: 'Use / or %r around regular expressions.'
|
4687
5087
|
StyleGuide: '#percent-r'
|
@@ -4700,6 +5100,12 @@ Style/RegexpLiteral:
|
|
4700
5100
|
# are found in the regexp string.
|
4701
5101
|
AllowInnerSlashes: false
|
4702
5102
|
|
5103
|
+
Style/RequireOrder:
|
5104
|
+
Description: Sort `require` and `require_relative` in alphabetical order.
|
5105
|
+
Enabled: false
|
5106
|
+
SafeAutoCorrect: false
|
5107
|
+
VersionAdded: '1.40'
|
5108
|
+
|
4703
5109
|
Style/RescueModifier:
|
4704
5110
|
Description: 'Avoid using rescue in its modifier form.'
|
4705
5111
|
StyleGuide: '#no-rescue-modifiers'
|
@@ -4727,6 +5133,15 @@ Style/ReturnNil:
|
|
4727
5133
|
- return_nil
|
4728
5134
|
VersionAdded: '0.50'
|
4729
5135
|
|
5136
|
+
Style/ReturnNilInPredicateMethodDefinition:
|
5137
|
+
Description: 'Checks if uses of `return` or `return nil` in predicate method definition.'
|
5138
|
+
StyleGuide: '#bool-methods-qmark'
|
5139
|
+
Enabled: true
|
5140
|
+
SafeAutoCorrect: false
|
5141
|
+
AllowedMethods: []
|
5142
|
+
AllowedPatterns: []
|
5143
|
+
VersionAdded: '1.53'
|
5144
|
+
|
4730
5145
|
Style/SafeNavigation:
|
4731
5146
|
Description: >-
|
4732
5147
|
Transforms usages of a method call safeguarded by
|
@@ -4819,6 +5234,12 @@ Style/SingleLineBlockParams:
|
|
4819
5234
|
- acc
|
4820
5235
|
- elem
|
4821
5236
|
|
5237
|
+
Style/SingleLineDoEndBlock:
|
5238
|
+
Description: 'Checks for single-line `do`...`end` blocks.'
|
5239
|
+
StyleGuide: '#single-line-do-end-block'
|
5240
|
+
Enabled: true
|
5241
|
+
VersionAdded: '1.57'
|
5242
|
+
|
4822
5243
|
Style/SingleLineMethods:
|
4823
5244
|
Description: 'Avoid single-line methods.'
|
4824
5245
|
StyleGuide: '#no-single-line-methods'
|
@@ -4828,7 +5249,8 @@ Style/SingleLineMethods:
|
|
4828
5249
|
AllowIfMethodIsEmpty: true
|
4829
5250
|
|
4830
5251
|
Style/SlicingWithRange:
|
4831
|
-
Description: 'Checks array slicing is done with endless ranges when suitable.'
|
5252
|
+
Description: 'Checks array slicing is done with redundant, endless, and beginless ranges when suitable.'
|
5253
|
+
StyleGuide: '#slicing-with-ranges'
|
4832
5254
|
Enabled: true
|
4833
5255
|
VersionAdded: '0.83'
|
4834
5256
|
Safe: false
|
@@ -4955,6 +5377,12 @@ Style/StructInheritance:
|
|
4955
5377
|
VersionAdded: '0.29'
|
4956
5378
|
VersionChanged: '1.20'
|
4957
5379
|
|
5380
|
+
Style/SuperWithArgsParentheses:
|
5381
|
+
Description: 'Use parentheses for `super` with arguments.'
|
5382
|
+
StyleGuide: '#super-with-args'
|
5383
|
+
Enabled: true
|
5384
|
+
VersionAdded: '1.58'
|
5385
|
+
|
4958
5386
|
Style/SwapValues:
|
4959
5387
|
Description: 'Enforces the use of shorthand-style swapping of 2 variables.'
|
4960
5388
|
StyleGuide: '#values-swapping'
|
@@ -4965,10 +5393,10 @@ Style/SwapValues:
|
|
4965
5393
|
Style/SymbolArray:
|
4966
5394
|
Description: 'Use %i or %I for arrays of symbols.'
|
4967
5395
|
StyleGuide: '#percent-i'
|
4968
|
-
Enabled:
|
5396
|
+
Enabled: true
|
4969
5397
|
VersionAdded: '0.9'
|
4970
5398
|
VersionChanged: '0.49'
|
4971
|
-
EnforcedStyle:
|
5399
|
+
EnforcedStyle: brackets
|
4972
5400
|
MinSize: 2
|
4973
5401
|
SupportedStyles:
|
4974
5402
|
- percent
|
@@ -4984,13 +5412,13 @@ Style/SymbolProc:
|
|
4984
5412
|
Enabled: true
|
4985
5413
|
Safe: false
|
4986
5414
|
VersionAdded: '0.26'
|
4987
|
-
VersionChanged: '1.
|
5415
|
+
VersionChanged: '1.40'
|
4988
5416
|
AllowMethodsWithArguments: false
|
4989
|
-
# A list of method names to be
|
5417
|
+
# A list of method names to be always allowed by the check.
|
4990
5418
|
# The names should be fairly unique, otherwise you'll end up ignoring lots of code.
|
4991
|
-
|
4992
|
-
- respond_to
|
5419
|
+
AllowedMethods:
|
4993
5420
|
- define_method
|
5421
|
+
AllowedPatterns: []
|
4994
5422
|
AllowComments: false
|
4995
5423
|
|
4996
5424
|
Style/TernaryParentheses:
|
@@ -5116,7 +5544,7 @@ Style/TrivialAccessors:
|
|
5116
5544
|
# on_exception :restart
|
5117
5545
|
#
|
5118
5546
|
# Commonly used in DSLs
|
5119
|
-
AllowDSLWriters:
|
5547
|
+
AllowDSLWriters: false
|
5120
5548
|
IgnoreClassMethods: false
|
5121
5549
|
AllowedMethods:
|
5122
5550
|
- to_ary
|
@@ -5211,6 +5639,11 @@ Style/WordArray:
|
|
5211
5639
|
# The regular expression `WordRegex` decides what is considered a word.
|
5212
5640
|
WordRegex: !ruby/regexp '/\A(?:\p{Word}|\p{Word}-\p{Word}|\n|\t)+\z/'
|
5213
5641
|
|
5642
|
+
Style/YAMLFileRead:
|
5643
|
+
Description: 'Checks for the use of `YAML.load`, `YAML.safe_load`, and `YAML.parse` with `File.read` argument.'
|
5644
|
+
Enabled: true
|
5645
|
+
VersionAdded: '1.53'
|
5646
|
+
|
5214
5647
|
Style/YodaCondition:
|
5215
5648
|
Description: 'Forbid or enforce yoda conditions.'
|
5216
5649
|
Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions'
|
@@ -5229,6 +5662,19 @@ Style/YodaCondition:
|
|
5229
5662
|
VersionAdded: '0.49'
|
5230
5663
|
VersionChanged: '0.75'
|
5231
5664
|
|
5665
|
+
Style/YodaExpression:
|
5666
|
+
Description: 'Forbid the use of yoda expressions.'
|
5667
|
+
Enabled: false
|
5668
|
+
Safe: false
|
5669
|
+
VersionAdded: '1.42'
|
5670
|
+
VersionChanged: '1.43'
|
5671
|
+
SupportedOperators:
|
5672
|
+
- '*'
|
5673
|
+
- '+'
|
5674
|
+
- '&'
|
5675
|
+
- '|'
|
5676
|
+
- '^'
|
5677
|
+
|
5232
5678
|
Style/ZeroLengthPredicate:
|
5233
5679
|
Description: 'Use #empty? when testing for objects of length 0.'
|
5234
5680
|
Enabled: true
|