ffi-geos 2.2.0 → 2.3.0
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 +4 -4
- data/.github/workflows/main.yml +49 -0
- data/.rubocop.yml +342 -60
- data/Gemfile +1 -6
- data/ffi-geos.gemspec +5 -0
- data/lib/ffi-geos/buffer_params.rb +1 -1
- data/lib/ffi-geos/coordinate_sequence.rb +32 -32
- data/lib/ffi-geos/geometry.rb +5 -5
- data/lib/ffi-geos/geometry_collection.rb +4 -4
- data/lib/ffi-geos/line_string.rb +10 -10
- data/lib/ffi-geos/multi_line_string.rb +1 -1
- data/lib/ffi-geos/point.rb +4 -4
- data/lib/ffi-geos/polygon.rb +4 -4
- data/lib/ffi-geos/prepared_geometry.rb +1 -1
- data/lib/ffi-geos/strtree.rb +1 -1
- data/lib/ffi-geos/version.rb +1 -1
- data/lib/ffi-geos/wkb_reader.rb +1 -1
- data/lib/ffi-geos/wkb_writer.rb +2 -2
- data/lib/ffi-geos/wkt_reader.rb +1 -1
- data/lib/ffi-geos/wkt_writer.rb +2 -2
- data/lib/ffi-geos.rb +8 -4
- data/sonar-project.properties +4 -4
- data/test/coordinate_sequence_tests.rb +6 -6
- data/test/geometry_collection_tests.rb +4 -4
- data/test/geometry_tests.rb +57 -32
- data/test/line_string_tests.rb +13 -5
- data/test/point_tests.rb +3 -3
- data/test/polygon_tests.rb +3 -3
- data/test/strtree_tests.rb +8 -8
- data/test/test_helper.rb +37 -12
- metadata +7 -6
- data/.travis.yml +0 -32
data/.rubocop.yml
CHANGED
@@ -80,6 +80,8 @@ AllCops:
|
|
80
80
|
# When specifying style guide URLs, any paths and/or fragments will be
|
81
81
|
# evaluated relative to the base URL.
|
82
82
|
StyleGuideBaseURL: https://rubystyle.guide
|
83
|
+
# Documentation URLs will be constructed using the base URL.
|
84
|
+
DocumentationBaseURL: https://docs.rubocop.org/rubocop
|
83
85
|
# Extra details are not displayed in offense messages by default. Change
|
84
86
|
# behavior by overriding ExtraDetails, or by giving the
|
85
87
|
# `-E/--extra-details` option.
|
@@ -132,7 +134,7 @@ AllCops:
|
|
132
134
|
# What MRI version of the Ruby interpreter is the inspected code intended to
|
133
135
|
# run on? (If there is more than one, set this to the lowest version.)
|
134
136
|
# If a value is specified for TargetRubyVersion then it is used. Acceptable
|
135
|
-
# values are
|
137
|
+
# values are specified as a float (i.e. 3.0); the teeny version of Ruby
|
136
138
|
# should not be included. If the project specifies a Ruby version in the
|
137
139
|
# .tool-versions or .ruby-version files, Gemfile or gems.rb file, RuboCop will
|
138
140
|
# try to determine the desired version of Ruby by inspecting the
|
@@ -140,7 +142,7 @@ AllCops:
|
|
140
142
|
# or gems.locked file. (Although the Ruby version is specified in the Gemfile
|
141
143
|
# or gems.rb file, RuboCop reads the final value from the lock file.) If the
|
142
144
|
# Ruby version is still unresolved, RuboCop will use the oldest officially
|
143
|
-
# supported Ruby version (currently Ruby 2.
|
145
|
+
# supported Ruby version (currently Ruby 2.5).
|
144
146
|
TargetRubyVersion: ~
|
145
147
|
# Determines if a notification for extension libraries should be shown when
|
146
148
|
# rubocop is run. Keys are the name of the extension, and values are an array
|
@@ -152,6 +154,7 @@ AllCops:
|
|
152
154
|
rubocop-minitest: [minitest]
|
153
155
|
rubocop-sequel: [sequel]
|
154
156
|
rubocop-rake: [rake]
|
157
|
+
rubocop-graphql: [graphql]
|
155
158
|
|
156
159
|
#################### Bundler ###############################
|
157
160
|
|
@@ -176,6 +179,34 @@ Bundler/GemComment:
|
|
176
179
|
IgnoredGems: []
|
177
180
|
OnlyFor: []
|
178
181
|
|
182
|
+
Bundler/GemFilename:
|
183
|
+
Description: 'Enforces the filename for managing gems.'
|
184
|
+
Enabled: true
|
185
|
+
VersionAdded: '1.20'
|
186
|
+
EnforcedStyle: 'Gemfile'
|
187
|
+
SupportedStyles:
|
188
|
+
- 'Gemfile'
|
189
|
+
- 'gems.rb'
|
190
|
+
Include:
|
191
|
+
- '**/Gemfile'
|
192
|
+
- '**/gems.rb'
|
193
|
+
- '**/Gemfile.lock'
|
194
|
+
- '**/gems.locked'
|
195
|
+
|
196
|
+
Bundler/GemVersion:
|
197
|
+
Description: 'Requires or forbids specifying gem versions.'
|
198
|
+
Enabled: false
|
199
|
+
VersionAdded: '1.14'
|
200
|
+
EnforcedStyle: 'required'
|
201
|
+
SupportedStyles:
|
202
|
+
- 'required'
|
203
|
+
- 'forbidden'
|
204
|
+
Include:
|
205
|
+
- '**/*.gemfile'
|
206
|
+
- '**/Gemfile'
|
207
|
+
- '**/gems.rb'
|
208
|
+
AllowedGems: []
|
209
|
+
|
179
210
|
Bundler/InsecureProtocolSource:
|
180
211
|
Description: >-
|
181
212
|
The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
|
@@ -183,6 +214,7 @@ Bundler/InsecureProtocolSource:
|
|
183
214
|
'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
|
184
215
|
Enabled: true
|
185
216
|
VersionAdded: '0.50'
|
217
|
+
AllowHttpProtocol: true
|
186
218
|
Include:
|
187
219
|
- '**/*.gemfile'
|
188
220
|
- '**/Gemfile'
|
@@ -231,11 +263,20 @@ Gemspec/OrderedDependencies:
|
|
231
263
|
Include:
|
232
264
|
- '**/*.gemspec'
|
233
265
|
|
266
|
+
Gemspec/RequireMFA:
|
267
|
+
Description: 'Checks that the gemspec has metadata to require MFA from RubyGems.'
|
268
|
+
Enabled: true
|
269
|
+
VersionAdded: '1.23'
|
270
|
+
Reference:
|
271
|
+
- https://guides.rubygems.org/mfa-requirement-opt-in/
|
272
|
+
Include:
|
273
|
+
- '**/*.gemspec'
|
274
|
+
|
234
275
|
Gemspec/RequiredRubyVersion:
|
235
276
|
Description: 'Checks that `required_ruby_version` of gemspec is specified and equal to `TargetRubyVersion` of .rubocop.yml.'
|
236
277
|
Enabled: true
|
237
278
|
VersionAdded: '0.52'
|
238
|
-
VersionChanged: '
|
279
|
+
VersionChanged: '1.22'
|
239
280
|
Include:
|
240
281
|
- '**/*.gemspec'
|
241
282
|
|
@@ -258,8 +299,8 @@ Layout/AccessModifierIndentation:
|
|
258
299
|
SupportedStyles:
|
259
300
|
- outdent
|
260
301
|
- indent
|
261
|
-
# By default
|
262
|
-
#
|
302
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
303
|
+
# but it can be overridden by setting this parameter.
|
263
304
|
IndentationWidth: ~
|
264
305
|
|
265
306
|
Layout/ArgumentAlignment:
|
@@ -287,8 +328,8 @@ Layout/ArgumentAlignment:
|
|
287
328
|
SupportedStyles:
|
288
329
|
- with_first_argument
|
289
330
|
- with_fixed_indentation
|
290
|
-
# By default
|
291
|
-
#
|
331
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
332
|
+
# but it can be overridden by setting this parameter.
|
292
333
|
IndentationWidth: ~
|
293
334
|
|
294
335
|
Layout/ArrayAlignment:
|
@@ -316,8 +357,8 @@ Layout/ArrayAlignment:
|
|
316
357
|
SupportedStyles:
|
317
358
|
- with_first_element
|
318
359
|
- with_fixed_indentation
|
319
|
-
# By default
|
320
|
-
#
|
360
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
361
|
+
# but it can be overridden by setting this parameter.
|
321
362
|
IndentationWidth: ~
|
322
363
|
|
323
364
|
Layout/AssignmentIndentation:
|
@@ -327,8 +368,8 @@ Layout/AssignmentIndentation:
|
|
327
368
|
Enabled: true
|
328
369
|
VersionAdded: '0.49'
|
329
370
|
VersionChanged: '0.77'
|
330
|
-
# By default
|
331
|
-
#
|
371
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
372
|
+
# but it can be overridden by setting this parameter.
|
332
373
|
IndentationWidth: ~
|
333
374
|
|
334
375
|
Layout/BeginEndAlignment:
|
@@ -365,18 +406,19 @@ Layout/BlockEndNewline:
|
|
365
406
|
VersionAdded: '0.49'
|
366
407
|
|
367
408
|
Layout/CaseIndentation:
|
368
|
-
Description: 'Indentation of when in a case/when/[else/]end.'
|
409
|
+
Description: 'Indentation of when in a case/(when|in)/[else/]end.'
|
369
410
|
StyleGuide: '#indent-when-to-case'
|
370
411
|
Enabled: true
|
371
412
|
VersionAdded: '0.49'
|
413
|
+
VersionChanged: '1.16'
|
372
414
|
EnforcedStyle: end
|
373
415
|
SupportedStyles:
|
374
416
|
- case
|
375
417
|
- end
|
376
418
|
IndentOneStep: true
|
377
|
-
# By default
|
378
|
-
#
|
379
|
-
# This only matters if `IndentOneStep` is `true
|
419
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
420
|
+
# but it can be overridden by setting this parameter.
|
421
|
+
# This only matters if `IndentOneStep` is `true`.
|
380
422
|
IndentationWidth: ~
|
381
423
|
|
382
424
|
Layout/ClassStructure:
|
@@ -411,7 +453,11 @@ Layout/ClosingParenthesisIndentation:
|
|
411
453
|
Layout/CommentIndentation:
|
412
454
|
Description: 'Indentation of comments.'
|
413
455
|
Enabled: true
|
456
|
+
# When true, allows comments to have extra indentation if that aligns them
|
457
|
+
# with a comment on the preceding line.
|
458
|
+
AllowForAlignment: false
|
414
459
|
VersionAdded: '0.49'
|
460
|
+
VersionChanged: '1.24'
|
415
461
|
|
416
462
|
Layout/ConditionPosition:
|
417
463
|
Description: >-
|
@@ -483,13 +529,13 @@ Layout/EmptyLineBetweenDefs:
|
|
483
529
|
StyleGuide: '#empty-lines-between-methods'
|
484
530
|
Enabled: true
|
485
531
|
VersionAdded: '0.49'
|
486
|
-
VersionChanged: '1.
|
532
|
+
VersionChanged: '1.23'
|
487
533
|
EmptyLineBetweenMethodDefs: true
|
488
534
|
EmptyLineBetweenClassDefs: true
|
489
535
|
EmptyLineBetweenModuleDefs: true
|
490
|
-
#
|
491
|
-
# need an empty line between them.
|
492
|
-
AllowAdjacentOneLineDefs:
|
536
|
+
# `AllowAdjacentOneLineDefs` means that single line method definitions don't
|
537
|
+
# need an empty line between them. `true` by default.
|
538
|
+
AllowAdjacentOneLineDefs: true
|
493
539
|
# Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
|
494
540
|
NumberOfEmptyLines: 1
|
495
541
|
|
@@ -653,8 +699,8 @@ Layout/FirstArgumentIndentation:
|
|
653
699
|
# Same as `special_for_inner_method_call` except that the special rule only
|
654
700
|
# applies if the outer method call encloses its arguments in parentheses.
|
655
701
|
- special_for_inner_method_call_in_parentheses
|
656
|
-
# By default
|
657
|
-
#
|
702
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
703
|
+
# but it can be overridden by setting this parameter.
|
658
704
|
IndentationWidth: ~
|
659
705
|
|
660
706
|
Layout/FirstArrayElementIndentation:
|
@@ -680,8 +726,8 @@ Layout/FirstArrayElementIndentation:
|
|
680
726
|
- special_inside_parentheses
|
681
727
|
- consistent
|
682
728
|
- align_brackets
|
683
|
-
# By default
|
684
|
-
#
|
729
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
730
|
+
# but it can be overridden by setting this parameter.
|
685
731
|
IndentationWidth: ~
|
686
732
|
|
687
733
|
Layout/FirstArrayElementLineBreak:
|
@@ -712,8 +758,8 @@ Layout/FirstHashElementIndentation:
|
|
712
758
|
- special_inside_parentheses
|
713
759
|
- consistent
|
714
760
|
- align_braces
|
715
|
-
# By default
|
716
|
-
#
|
761
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
762
|
+
# but it can be overridden by setting this parameter.
|
717
763
|
IndentationWidth: ~
|
718
764
|
|
719
765
|
Layout/FirstHashElementLineBreak:
|
@@ -748,8 +794,8 @@ Layout/FirstParameterIndentation:
|
|
748
794
|
SupportedStyles:
|
749
795
|
- consistent
|
750
796
|
- align_parentheses
|
751
|
-
# By default
|
752
|
-
#
|
797
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
798
|
+
# but it can be overridden by setting this parameter.
|
753
799
|
IndentationWidth: ~
|
754
800
|
|
755
801
|
Layout/HashAlignment:
|
@@ -759,7 +805,7 @@ Layout/HashAlignment:
|
|
759
805
|
Enabled: true
|
760
806
|
AllowMultipleStyles: true
|
761
807
|
VersionAdded: '0.49'
|
762
|
-
VersionChanged: '
|
808
|
+
VersionChanged: '1.16'
|
763
809
|
# Alignment of entries using hash rocket as separator. Valid values are:
|
764
810
|
#
|
765
811
|
# key - left alignment of keys
|
@@ -870,8 +916,8 @@ Layout/IndentationStyle:
|
|
870
916
|
Enabled: true
|
871
917
|
VersionAdded: '0.49'
|
872
918
|
VersionChanged: '0.82'
|
873
|
-
# By default
|
874
|
-
#
|
919
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
920
|
+
# but it can be overridden by setting this parameter.
|
875
921
|
# It is used during auto-correction to determine how many spaces should
|
876
922
|
# replace each tab.
|
877
923
|
IndentationWidth: ~
|
@@ -910,13 +956,26 @@ Layout/LeadingEmptyLines:
|
|
910
956
|
VersionAdded: '0.57'
|
911
957
|
VersionChanged: '0.77'
|
912
958
|
|
959
|
+
Layout/LineEndStringConcatenationIndentation:
|
960
|
+
Description: >-
|
961
|
+
Checks the indentation of the next line after a line that
|
962
|
+
ends with a string literal and a backslash.
|
963
|
+
Enabled: true
|
964
|
+
VersionAdded: '1.18'
|
965
|
+
EnforcedStyle: aligned
|
966
|
+
SupportedStyles:
|
967
|
+
- aligned
|
968
|
+
- indented
|
969
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
970
|
+
# but it can be overridden by setting this parameter.
|
971
|
+
IndentationWidth: ~
|
972
|
+
|
913
973
|
Layout/LineLength:
|
914
974
|
Description: 'Checks that line length does not exceed the configured limit.'
|
915
975
|
StyleGuide: '#max-line-length'
|
916
976
|
Enabled: true
|
917
977
|
VersionAdded: '0.25'
|
918
978
|
VersionChanged: '1.4'
|
919
|
-
AutoCorrect: true
|
920
979
|
Max: 300
|
921
980
|
# To make it possible to copy or click on URIs in the code, we allow lines
|
922
981
|
# containing a URI to be longer than Max.
|
@@ -1040,8 +1099,8 @@ Layout/MultilineMethodCallIndentation:
|
|
1040
1099
|
- aligned
|
1041
1100
|
- indented
|
1042
1101
|
- indented_relative_to_receiver
|
1043
|
-
# By default
|
1044
|
-
#
|
1102
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
1103
|
+
# but it can be overridden by setting this parameter.
|
1045
1104
|
IndentationWidth: ~
|
1046
1105
|
|
1047
1106
|
Layout/MultilineMethodDefinitionBraceLayout:
|
@@ -1070,8 +1129,8 @@ Layout/MultilineOperationIndentation:
|
|
1070
1129
|
SupportedStyles:
|
1071
1130
|
- aligned
|
1072
1131
|
- indented
|
1073
|
-
# By default
|
1074
|
-
#
|
1132
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
1133
|
+
# but it can be overridden by setting this parameter.
|
1075
1134
|
IndentationWidth: ~
|
1076
1135
|
|
1077
1136
|
Layout/ParameterAlignment:
|
@@ -1099,15 +1158,28 @@ Layout/ParameterAlignment:
|
|
1099
1158
|
SupportedStyles:
|
1100
1159
|
- with_first_parameter
|
1101
1160
|
- with_fixed_indentation
|
1102
|
-
# By default
|
1103
|
-
#
|
1161
|
+
# By default the indentation width from `Layout/IndentationWidth` is used,
|
1162
|
+
# but it can be overridden by setting this parameter.
|
1104
1163
|
IndentationWidth: ~
|
1105
1164
|
|
1165
|
+
Layout/RedundantLineBreak:
|
1166
|
+
Description: >-
|
1167
|
+
Do not break up an expression into multiple lines when it fits
|
1168
|
+
on a single line.
|
1169
|
+
Enabled: false
|
1170
|
+
InspectBlocks: false
|
1171
|
+
VersionAdded: '1.13'
|
1172
|
+
|
1106
1173
|
Layout/RescueEnsureAlignment:
|
1107
1174
|
Description: 'Align rescues and ensures correctly.'
|
1108
1175
|
Enabled: true
|
1109
1176
|
VersionAdded: '0.49'
|
1110
1177
|
|
1178
|
+
Layout/SingleLineBlockChain:
|
1179
|
+
Description: 'Put method call on a separate line if chained to a single line block.'
|
1180
|
+
Enabled: false
|
1181
|
+
VersionAdded: '1.14'
|
1182
|
+
|
1111
1183
|
Layout/SpaceAfterColon:
|
1112
1184
|
Description: 'Use spaces after colons.'
|
1113
1185
|
StyleGuide: '#spaces-operators'
|
@@ -1286,7 +1358,7 @@ Layout/SpaceInsideBlockBraces:
|
|
1286
1358
|
|
1287
1359
|
Layout/SpaceInsideHashLiteralBraces:
|
1288
1360
|
Description: "Use spaces inside hash literal braces - or don't."
|
1289
|
-
StyleGuide: '#spaces-
|
1361
|
+
StyleGuide: '#spaces-braces'
|
1290
1362
|
Enabled: true
|
1291
1363
|
VersionAdded: '0.49'
|
1292
1364
|
EnforcedStyle: space
|
@@ -1307,10 +1379,11 @@ Layout/SpaceInsideParens:
|
|
1307
1379
|
StyleGuide: '#spaces-braces'
|
1308
1380
|
Enabled: true
|
1309
1381
|
VersionAdded: '0.49'
|
1310
|
-
VersionChanged: '
|
1382
|
+
VersionChanged: '1.22'
|
1311
1383
|
EnforcedStyle: no_space
|
1312
1384
|
SupportedStyles:
|
1313
1385
|
- space
|
1386
|
+
- compact
|
1314
1387
|
- no_space
|
1315
1388
|
|
1316
1389
|
Layout/SpaceInsidePercentLiteralDelimiters:
|
@@ -1382,6 +1455,8 @@ Lint/AmbiguousBlockAssociation:
|
|
1382
1455
|
StyleGuide: '#syntax'
|
1383
1456
|
Enabled: true
|
1384
1457
|
VersionAdded: '0.48'
|
1458
|
+
VersionChanged: '1.13'
|
1459
|
+
IgnoredMethods: []
|
1385
1460
|
|
1386
1461
|
Lint/AmbiguousOperator:
|
1387
1462
|
Description: >-
|
@@ -1392,6 +1467,20 @@ Lint/AmbiguousOperator:
|
|
1392
1467
|
VersionAdded: '0.17'
|
1393
1468
|
VersionChanged: '0.83'
|
1394
1469
|
|
1470
|
+
Lint/AmbiguousOperatorPrecedence:
|
1471
|
+
Description: >-
|
1472
|
+
Checks for expressions containing multiple binary operations with
|
1473
|
+
ambiguous precedence.
|
1474
|
+
Enabled: true
|
1475
|
+
VersionAdded: '1.21'
|
1476
|
+
|
1477
|
+
Lint/AmbiguousRange:
|
1478
|
+
Description: Checks for ranges with ambiguous boundaries.
|
1479
|
+
Enabled: true
|
1480
|
+
VersionAdded: '1.19'
|
1481
|
+
SafeAutoCorrect: false
|
1482
|
+
RequireParenthesesForMethodChains: false
|
1483
|
+
|
1395
1484
|
Lint/AmbiguousRegexpLiteral:
|
1396
1485
|
Description: >-
|
1397
1486
|
Checks for ambiguous regexp literals in the first argument of
|
@@ -1422,9 +1511,9 @@ Lint/BinaryOperatorWithIdenticalOperands:
|
|
1422
1511
|
Lint/BooleanSymbol:
|
1423
1512
|
Description: 'Check for `:true` and `:false` symbols.'
|
1424
1513
|
Enabled: true
|
1425
|
-
|
1514
|
+
SafeAutoCorrect: false
|
1426
1515
|
VersionAdded: '0.50'
|
1427
|
-
VersionChanged: '
|
1516
|
+
VersionChanged: '1.22'
|
1428
1517
|
|
1429
1518
|
Lint/CircularArgumentReference:
|
1430
1519
|
Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument."
|
@@ -1456,6 +1545,7 @@ Lint/Debugger:
|
|
1456
1545
|
Enabled: true
|
1457
1546
|
VersionAdded: '0.14'
|
1458
1547
|
VersionChanged: '1.10'
|
1548
|
+
#DebuggerReceivers: [] # deprecated
|
1459
1549
|
DebuggerMethods:
|
1460
1550
|
# Groups are available so that a specific group can be disabled in
|
1461
1551
|
# a user's configuration, but are otherwise not significant.
|
@@ -1469,6 +1559,11 @@ Lint/Debugger:
|
|
1469
1559
|
Capybara:
|
1470
1560
|
- save_and_open_page
|
1471
1561
|
- save_and_open_screenshot
|
1562
|
+
debug.rb:
|
1563
|
+
- binding.b
|
1564
|
+
- binding.break
|
1565
|
+
- Kernel.binding.b
|
1566
|
+
- Kernel.binding.break
|
1472
1567
|
Pry:
|
1473
1568
|
- binding.pry
|
1474
1569
|
- binding.remote_pry
|
@@ -1477,6 +1572,8 @@ Lint/Debugger:
|
|
1477
1572
|
Rails:
|
1478
1573
|
- debugger
|
1479
1574
|
- Kernel.debugger
|
1575
|
+
RubyJard:
|
1576
|
+
- jard
|
1480
1577
|
WebConsole:
|
1481
1578
|
- binding.console
|
1482
1579
|
|
@@ -1489,6 +1586,7 @@ Lint/DeprecatedConstants:
|
|
1489
1586
|
Description: 'Checks for deprecated constants.'
|
1490
1587
|
Enabled: true
|
1491
1588
|
VersionAdded: '1.8'
|
1589
|
+
VersionChanged: '1.22'
|
1492
1590
|
# You can configure deprecated constants.
|
1493
1591
|
# If there is an alternative method, you can set alternative value as `Alternative`.
|
1494
1592
|
# And you can set the deprecated version as `DeprecatedVersion`.
|
@@ -1509,6 +1607,9 @@ Lint/DeprecatedConstants:
|
|
1509
1607
|
'FALSE':
|
1510
1608
|
Alternative: 'false'
|
1511
1609
|
DeprecatedVersion: '2.4'
|
1610
|
+
'Net::HTTPServerException':
|
1611
|
+
Alternative: 'Net::HTTPClientException'
|
1612
|
+
DeprecatedVersion: '2.6'
|
1512
1613
|
'Random::DEFAULT':
|
1513
1614
|
Alternative: 'Random.new'
|
1514
1615
|
DeprecatedVersion: '3.0'
|
@@ -1584,7 +1685,7 @@ Lint/EmptyBlock:
|
|
1584
1685
|
Description: 'This cop checks for blocks without a body.'
|
1585
1686
|
Enabled: true
|
1586
1687
|
VersionAdded: '1.1'
|
1587
|
-
VersionChanged: '1.
|
1688
|
+
VersionChanged: '1.15'
|
1588
1689
|
AllowComments: true
|
1589
1690
|
AllowEmptyLambdas: true
|
1590
1691
|
|
@@ -1617,6 +1718,12 @@ Lint/EmptyFile:
|
|
1617
1718
|
AllowComments: true
|
1618
1719
|
VersionAdded: '0.90'
|
1619
1720
|
|
1721
|
+
Lint/EmptyInPattern:
|
1722
|
+
Description: 'Checks for the presence of `in` pattern branches without a body.'
|
1723
|
+
Enabled: true
|
1724
|
+
AllowComments: true
|
1725
|
+
VersionAdded: '1.16'
|
1726
|
+
|
1620
1727
|
Lint/EmptyInterpolation:
|
1621
1728
|
Description: 'Checks for empty string interpolation.'
|
1622
1729
|
Enabled: true
|
@@ -1694,6 +1801,13 @@ Lint/ImplicitStringConcatenation:
|
|
1694
1801
|
Enabled: true
|
1695
1802
|
VersionAdded: '0.36'
|
1696
1803
|
|
1804
|
+
Lint/IncompatibleIoSelectWithFiberScheduler:
|
1805
|
+
Description: 'Checks for `IO.select` that is incompatible with Fiber Scheduler.'
|
1806
|
+
Enabled: true
|
1807
|
+
SafeAutoCorrect: false
|
1808
|
+
VersionAdded: '1.21'
|
1809
|
+
VersionChanged: '1.24'
|
1810
|
+
|
1697
1811
|
Lint/IneffectiveAccessModifier:
|
1698
1812
|
Description: >-
|
1699
1813
|
Checks for attempts to use `private` or `protected` to set
|
@@ -1775,7 +1889,6 @@ Lint/MultipleComparison:
|
|
1775
1889
|
Enabled: true
|
1776
1890
|
VersionAdded: '0.47'
|
1777
1891
|
VersionChanged: '1.1'
|
1778
|
-
AllowMethodComparison: true
|
1779
1892
|
|
1780
1893
|
Lint/NestedMethodDefinition:
|
1781
1894
|
Description: 'Do not use nested method definitions.'
|
@@ -1958,6 +2071,11 @@ Lint/RequireParentheses:
|
|
1958
2071
|
Enabled: true
|
1959
2072
|
VersionAdded: '0.18'
|
1960
2073
|
|
2074
|
+
Lint/RequireRelativeSelfPath:
|
2075
|
+
Description: 'Checks for uses a file requiring itself with `require_relative`.'
|
2076
|
+
Enabled: true
|
2077
|
+
VersionAdded: '1.22'
|
2078
|
+
|
1961
2079
|
Lint/RescueException:
|
1962
2080
|
Description: 'Avoid rescuing the Exception class.'
|
1963
2081
|
StyleGuide: '#no-blind-rescues'
|
@@ -2064,6 +2182,7 @@ Lint/SymbolConversion:
|
|
2064
2182
|
Description: 'Checks for unnecessary symbol conversions.'
|
2065
2183
|
Enabled: true
|
2066
2184
|
VersionAdded: '1.9'
|
2185
|
+
VersionChanged: '1.16'
|
2067
2186
|
EnforcedStyle: strict
|
2068
2187
|
SupportedStyles:
|
2069
2188
|
- strict
|
@@ -2209,6 +2328,11 @@ Lint/UselessMethodDefinition:
|
|
2209
2328
|
Safe: false
|
2210
2329
|
AllowComments: true
|
2211
2330
|
|
2331
|
+
Lint/UselessRuby2Keywords:
|
2332
|
+
Description: 'Finds unnecessary uses of `ruby2_keywords`.'
|
2333
|
+
Enabled: true
|
2334
|
+
VersionAdded: '1.23'
|
2335
|
+
|
2212
2336
|
Lint/UselessSetterCall:
|
2213
2337
|
Description: 'Checks for useless setter call to a local variable.'
|
2214
2338
|
Enabled: true
|
@@ -2255,6 +2379,7 @@ Metrics/BlockLength:
|
|
2255
2379
|
CountComments: false # count full line comments?
|
2256
2380
|
Max: 50
|
2257
2381
|
CountAsOne: []
|
2382
|
+
#ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2258
2383
|
IgnoredMethods:
|
2259
2384
|
# By default, exclude the `#refine` method, as it tends to have larger
|
2260
2385
|
# associated blocks.
|
@@ -2300,6 +2425,7 @@ Metrics/MethodLength:
|
|
2300
2425
|
CountComments: false # count full line comments?
|
2301
2426
|
Max: 50
|
2302
2427
|
CountAsOne: []
|
2428
|
+
#ExcludedMethods: [] # deprecated, retained for backwards compatibility
|
2303
2429
|
IgnoredMethods: []
|
2304
2430
|
|
2305
2431
|
Metrics/ModuleLength:
|
@@ -2363,6 +2489,15 @@ Naming/BinaryOperatorParameterName:
|
|
2363
2489
|
VersionAdded: '0.50'
|
2364
2490
|
VersionChanged: '1.2'
|
2365
2491
|
|
2492
|
+
Naming/BlockForwarding:
|
2493
|
+
Description: 'Use anonymous block forwarding.'
|
2494
|
+
Enabled: true
|
2495
|
+
VersionAdded: '1.24'
|
2496
|
+
EnforcedStyle: anonymous
|
2497
|
+
SupportedStyles:
|
2498
|
+
- anonymous
|
2499
|
+
- explicit
|
2500
|
+
|
2366
2501
|
Naming/BlockParameterName:
|
2367
2502
|
Description: >-
|
2368
2503
|
Checks for block parameter names that contain capital letters,
|
@@ -2412,6 +2547,13 @@ Naming/FileName:
|
|
2412
2547
|
# whether each source file's class or module name matches the file name --
|
2413
2548
|
# not whether the nested module hierarchy matches the subdirectory path.
|
2414
2549
|
CheckDefinitionPathHierarchy: true
|
2550
|
+
# paths that are considered root directories, for example "lib" in most ruby projects
|
2551
|
+
# or "app/models" in rails projects
|
2552
|
+
CheckDefinitionPathHierarchyRoots:
|
2553
|
+
- lib
|
2554
|
+
- spec
|
2555
|
+
- test
|
2556
|
+
- src
|
2415
2557
|
# If non-`nil`, expect all source file names to match the following regex.
|
2416
2558
|
# Only the file name itself is matched, not the entire file path.
|
2417
2559
|
# Use anchors as necessary if you want to match the entire name rather than
|
@@ -2482,6 +2624,33 @@ Naming/HeredocDelimiterNaming:
|
|
2482
2624
|
ForbiddenDelimiters:
|
2483
2625
|
- !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/'
|
2484
2626
|
|
2627
|
+
Naming/InclusiveLanguage:
|
2628
|
+
Description: 'Recommend the use of inclusive language instead of problematic terms.'
|
2629
|
+
Enabled: false
|
2630
|
+
VersionAdded: '1.18'
|
2631
|
+
VersionChanged: '1.21'
|
2632
|
+
CheckIdentifiers: true
|
2633
|
+
CheckConstants: true
|
2634
|
+
CheckVariables: true
|
2635
|
+
CheckStrings: false
|
2636
|
+
CheckSymbols: true
|
2637
|
+
CheckComments: true
|
2638
|
+
CheckFilepaths: true
|
2639
|
+
FlaggedTerms:
|
2640
|
+
whitelist:
|
2641
|
+
Regex: !ruby/regexp '/white[-_\s]?list/'
|
2642
|
+
Suggestions:
|
2643
|
+
- allowlist
|
2644
|
+
- permit
|
2645
|
+
blacklist:
|
2646
|
+
Regex: !ruby/regexp '/black[-_\s]?list/'
|
2647
|
+
Suggestions:
|
2648
|
+
- denylist
|
2649
|
+
- block
|
2650
|
+
slave:
|
2651
|
+
WholeWord: true
|
2652
|
+
Suggestions: ['replica', 'secondary', 'follower']
|
2653
|
+
|
2485
2654
|
Naming/MemoizedInstanceVariableName:
|
2486
2655
|
Description: >-
|
2487
2656
|
Memoized method name should match memo instance variable name.
|
@@ -2615,6 +2784,14 @@ Security/Eval:
|
|
2615
2784
|
Enabled: true
|
2616
2785
|
VersionAdded: '0.47'
|
2617
2786
|
|
2787
|
+
Security/IoMethods:
|
2788
|
+
Description: >-
|
2789
|
+
Checks for the first argument to `IO.read`, `IO.binread`, `IO.write`, `IO.binwrite`,
|
2790
|
+
`IO.foreach`, and `IO.readlines`.
|
2791
|
+
Enabled: true
|
2792
|
+
Safe: false
|
2793
|
+
VersionAdded: '1.22'
|
2794
|
+
|
2618
2795
|
Security/JSONLoad:
|
2619
2796
|
Description: >-
|
2620
2797
|
Prefer usage of `JSON.parse` over `JSON.load` due to potential
|
@@ -2622,10 +2799,9 @@ Security/JSONLoad:
|
|
2622
2799
|
Reference: 'https://ruby-doc.org/stdlib-2.7.0/libdoc/json/rdoc/JSON.html#method-i-load'
|
2623
2800
|
Enabled: true
|
2624
2801
|
VersionAdded: '0.43'
|
2625
|
-
VersionChanged: '
|
2802
|
+
VersionChanged: '1.22'
|
2626
2803
|
# Autocorrect here will change to a method that may cause crashes depending
|
2627
2804
|
# on the value of the argument.
|
2628
|
-
AutoCorrect: false
|
2629
2805
|
SafeAutoCorrect: false
|
2630
2806
|
|
2631
2807
|
Security/MarshalLoad:
|
@@ -2691,8 +2867,9 @@ Style/AndOr:
|
|
2691
2867
|
Description: 'Use &&/|| instead of and/or.'
|
2692
2868
|
StyleGuide: '#no-and-or-or'
|
2693
2869
|
Enabled: true
|
2870
|
+
SafeAutoCorrect: false
|
2694
2871
|
VersionAdded: '0.9'
|
2695
|
-
VersionChanged: '
|
2872
|
+
VersionChanged: '1.21'
|
2696
2873
|
# Whether `and` and `or` are banned only in conditionals (conditionals)
|
2697
2874
|
# or completely (always).
|
2698
2875
|
EnforcedStyle: conditionals
|
@@ -2728,7 +2905,7 @@ Style/AsciiComments:
|
|
2728
2905
|
StyleGuide: '#english-comments'
|
2729
2906
|
Enabled: true
|
2730
2907
|
VersionAdded: '0.9'
|
2731
|
-
VersionChanged: '
|
2908
|
+
VersionChanged: '1.21'
|
2732
2909
|
AllowedChars:
|
2733
2910
|
- ©
|
2734
2911
|
|
@@ -2890,7 +3067,7 @@ Style/CaseEquality:
|
|
2890
3067
|
Enabled: true
|
2891
3068
|
VersionAdded: '0.9'
|
2892
3069
|
VersionChanged: '0.89'
|
2893
|
-
# If AllowOnConstant is enabled, the cop will ignore violations when the receiver of
|
3070
|
+
# If `AllowOnConstant` option is enabled, the cop will ignore violations when the receiver of
|
2894
3071
|
# the case equality operator is a constant.
|
2895
3072
|
#
|
2896
3073
|
# # bad
|
@@ -3065,7 +3242,7 @@ Style/CommentAnnotation:
|
|
3065
3242
|
StyleGuide: '#annotate-keywords'
|
3066
3243
|
Enabled: true
|
3067
3244
|
VersionAdded: '0.10'
|
3068
|
-
VersionChanged: '1.
|
3245
|
+
VersionChanged: '1.20'
|
3069
3246
|
Keywords:
|
3070
3247
|
- TODO
|
3071
3248
|
- FIXME
|
@@ -3073,12 +3250,14 @@ Style/CommentAnnotation:
|
|
3073
3250
|
- HACK
|
3074
3251
|
- REVIEW
|
3075
3252
|
- NOTE
|
3253
|
+
RequireColon: true
|
3076
3254
|
|
3077
3255
|
Style/CommentedKeyword:
|
3078
3256
|
Description: 'Do not place comments on the same line as certain keywords.'
|
3079
3257
|
Enabled: true
|
3258
|
+
SafeAutoCorrect: false
|
3080
3259
|
VersionAdded: '0.51'
|
3081
|
-
VersionChanged: '1.
|
3260
|
+
VersionChanged: '1.19'
|
3082
3261
|
|
3083
3262
|
Style/ConditionalAssignment:
|
3084
3263
|
Description: >-
|
@@ -3331,6 +3510,18 @@ Style/ExponentialNotation:
|
|
3331
3510
|
- engineering
|
3332
3511
|
- integral
|
3333
3512
|
|
3513
|
+
Style/FileRead:
|
3514
|
+
Description: 'Favor `File.(bin)read` convenience methods.'
|
3515
|
+
StyleGuide: '#file-read'
|
3516
|
+
Enabled: true
|
3517
|
+
VersionAdded: '1.24'
|
3518
|
+
|
3519
|
+
Style/FileWrite:
|
3520
|
+
Description: 'Favor `File.(bin)write` convenience methods.'
|
3521
|
+
StyleGuide: '#file-write'
|
3522
|
+
Enabled: true
|
3523
|
+
VersionAdded: '1.24'
|
3524
|
+
|
3334
3525
|
Style/FloatDivision:
|
3335
3526
|
Description: 'For performing float division, coerce one side only.'
|
3336
3527
|
StyleGuide: '#float-division'
|
@@ -3450,6 +3641,7 @@ Style/HashAsLastArrayItem:
|
|
3450
3641
|
|
3451
3642
|
Style/HashConversion:
|
3452
3643
|
Description: 'Avoid Hash[] in favor of ary.to_h or literal hashes.'
|
3644
|
+
StyleGuide: '#avoid-hash-constructor'
|
3453
3645
|
Enabled: true
|
3454
3646
|
VersionAdded: '1.10'
|
3455
3647
|
VersionChanged: '1.11'
|
@@ -3459,8 +3651,10 @@ Style/HashEachMethods:
|
|
3459
3651
|
Description: 'Use Hash#each_key and Hash#each_value.'
|
3460
3652
|
StyleGuide: '#hash-each'
|
3461
3653
|
Enabled: true
|
3462
|
-
VersionAdded: '0.80'
|
3463
3654
|
Safe: false
|
3655
|
+
VersionAdded: '0.80'
|
3656
|
+
VersionChanged: '1.16'
|
3657
|
+
AllowedReceivers: []
|
3464
3658
|
|
3465
3659
|
Style/HashExcept:
|
3466
3660
|
Description: >-
|
@@ -3486,7 +3680,7 @@ Style/HashSyntax:
|
|
3486
3680
|
StyleGuide: '#hash-literals'
|
3487
3681
|
Enabled: true
|
3488
3682
|
VersionAdded: '0.9'
|
3489
|
-
VersionChanged: '
|
3683
|
+
VersionChanged: '1.24'
|
3490
3684
|
EnforcedStyle: ruby19
|
3491
3685
|
SupportedStyles:
|
3492
3686
|
# checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys
|
@@ -3497,6 +3691,13 @@ Style/HashSyntax:
|
|
3497
3691
|
- no_mixed_keys
|
3498
3692
|
# enforces both ruby19 and no_mixed_keys styles
|
3499
3693
|
- ruby19_no_mixed_keys
|
3694
|
+
# Force hashes that have a hash value omission
|
3695
|
+
EnforcedShorthandSyntax: always
|
3696
|
+
SupportedShorthandSyntax:
|
3697
|
+
# forces use of the 3.1 syntax (e.g. {foo:}) when the hash key and value are the same.
|
3698
|
+
- always
|
3699
|
+
# forces use of explicit hash literal value.
|
3700
|
+
- never
|
3500
3701
|
# Force hashes that have a symbol value to use hash rockets
|
3501
3702
|
UseHashRocketsWithSymbolValues: false
|
3502
3703
|
# Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style
|
@@ -3522,7 +3723,9 @@ Style/IdenticalConditionalBranches:
|
|
3522
3723
|
line at the end of each branch, which can validly be moved
|
3523
3724
|
out of the conditional.
|
3524
3725
|
Enabled: true
|
3726
|
+
SafeAutoCorrect: false
|
3525
3727
|
VersionAdded: '0.36'
|
3728
|
+
VersionChanged: '1.19'
|
3526
3729
|
|
3527
3730
|
Style/IfInsideElse:
|
3528
3731
|
Description: 'Finds if nodes inside else, which can be converted to elsif.'
|
@@ -3569,10 +3772,16 @@ Style/ImplicitRuntimeError:
|
|
3569
3772
|
Enabled: false
|
3570
3773
|
VersionAdded: '0.41'
|
3571
3774
|
|
3775
|
+
Style/InPatternThen:
|
3776
|
+
Description: 'Checks for `in;` uses in `case` expressions.'
|
3777
|
+
StyleGuide: '#no-in-pattern-semicolons'
|
3778
|
+
Enabled: true
|
3779
|
+
VersionAdded: '1.16'
|
3780
|
+
|
3572
3781
|
Style/InfiniteLoop:
|
3573
3782
|
Description: >-
|
3574
3783
|
Use Kernel#loop for infinite loops.
|
3575
|
-
This cop is unsafe
|
3784
|
+
This cop is unsafe if the body may raise a `StopIteration` exception.
|
3576
3785
|
Safe: false
|
3577
3786
|
StyleGuide: '#infinite-loop'
|
3578
3787
|
Enabled: true
|
@@ -3665,6 +3874,12 @@ Style/LineEndConcatenation:
|
|
3665
3874
|
VersionAdded: '0.18'
|
3666
3875
|
VersionChanged: '0.64'
|
3667
3876
|
|
3877
|
+
Style/MapToHash:
|
3878
|
+
Description: 'Prefer `to_h` with a block over `map.to_h`.'
|
3879
|
+
Enabled: true
|
3880
|
+
VersionAdded: '1.24'
|
3881
|
+
Safe: false
|
3882
|
+
|
3668
3883
|
Style/MethodCallWithArgsParentheses:
|
3669
3884
|
Description: 'Use parentheses for method calls with arguments.'
|
3670
3885
|
StyleGuide: '#method-invocation-parens'
|
@@ -3797,6 +4012,12 @@ Style/MultilineIfThen:
|
|
3797
4012
|
VersionAdded: '0.9'
|
3798
4013
|
VersionChanged: '0.26'
|
3799
4014
|
|
4015
|
+
Style/MultilineInPatternThen:
|
4016
|
+
Description: 'Do not use `then` for multi-line `in` statement.'
|
4017
|
+
StyleGuide: '#no-then'
|
4018
|
+
Enabled: true
|
4019
|
+
VersionAdded: '1.16'
|
4020
|
+
|
3800
4021
|
Style/MultilineMemoization:
|
3801
4022
|
Description: 'Wrap multiline memoizations in a `begin` and `end` block.'
|
3802
4023
|
Enabled: true
|
@@ -3835,6 +4056,7 @@ Style/MultipleComparison:
|
|
3835
4056
|
Enabled: true
|
3836
4057
|
VersionAdded: '0.49'
|
3837
4058
|
VersionChanged: '1.1'
|
4059
|
+
AllowMethodComparison: true
|
3838
4060
|
|
3839
4061
|
Style/MutableConstant:
|
3840
4062
|
Description: 'Do not assign mutable objects to constants.'
|
@@ -3968,6 +4190,7 @@ Style/NilLambda:
|
|
3968
4190
|
Description: 'Prefer `-> {}` to `-> { nil }`.'
|
3969
4191
|
Enabled: true
|
3970
4192
|
VersionAdded: '1.3'
|
4193
|
+
VersionChanged: '1.15'
|
3971
4194
|
|
3972
4195
|
Style/NonNilCheck:
|
3973
4196
|
Description: 'Checks for redundant nil checks.'
|
@@ -3990,6 +4213,21 @@ Style/Not:
|
|
3990
4213
|
VersionAdded: '0.9'
|
3991
4214
|
VersionChanged: '0.20'
|
3992
4215
|
|
4216
|
+
Style/NumberedParameters:
|
4217
|
+
Description: 'Restrict the usage of numbered parameters.'
|
4218
|
+
Enabled: true
|
4219
|
+
VersionAdded: '1.22'
|
4220
|
+
EnforcedStyle: allow_single_line
|
4221
|
+
SupportedStyles:
|
4222
|
+
- allow_single_line
|
4223
|
+
- disallow
|
4224
|
+
|
4225
|
+
Style/NumberedParametersLimit:
|
4226
|
+
Description: 'Avoid excessive numbered params in a single block.'
|
4227
|
+
Enabled: true
|
4228
|
+
VersionAdded: '1.22'
|
4229
|
+
Max: 1
|
4230
|
+
|
3993
4231
|
Style/NumericLiteralPrefix:
|
3994
4232
|
Description: 'Use smallcase prefixes for numeric literals.'
|
3995
4233
|
StyleGuide: '#numeric-literal-prefixes'
|
@@ -4000,7 +4238,6 @@ Style/NumericLiteralPrefix:
|
|
4000
4238
|
- zero_with_o
|
4001
4239
|
- zero_only
|
4002
4240
|
|
4003
|
-
|
4004
4241
|
Style/NumericLiterals:
|
4005
4242
|
Description: >-
|
4006
4243
|
Add underscores to large numeric literals to improve their
|
@@ -4011,6 +4248,8 @@ Style/NumericLiterals:
|
|
4011
4248
|
VersionChanged: '0.48'
|
4012
4249
|
MinDigits: 5
|
4013
4250
|
Strict: false
|
4251
|
+
# You can specify allowed numbers. (e.g. port number 3000, 8080, and etc)
|
4252
|
+
AllowedNumbers: []
|
4014
4253
|
|
4015
4254
|
Style/NumericPredicate:
|
4016
4255
|
Description: >-
|
@@ -4045,6 +4284,16 @@ Style/OneLineConditional:
|
|
4045
4284
|
VersionAdded: '0.9'
|
4046
4285
|
VersionChanged: '0.90'
|
4047
4286
|
|
4287
|
+
Style/OpenStructUse:
|
4288
|
+
Description: >-
|
4289
|
+
Avoid using OpenStruct. As of Ruby 3.0, use is officially discouraged due to performance,
|
4290
|
+
version compatibility, and potential security issues.
|
4291
|
+
Reference:
|
4292
|
+
- https://docs.ruby-lang.org/en/3.0.0/OpenStruct.html#class-OpenStruct-label-Caveats
|
4293
|
+
|
4294
|
+
Enabled: true
|
4295
|
+
VersionAdded: '1.23'
|
4296
|
+
|
4048
4297
|
Style/OptionHash:
|
4049
4298
|
Description: "Don't use option hashes when you can use keyword arguments."
|
4050
4299
|
Enabled: false
|
@@ -4057,6 +4306,7 @@ Style/OptionHash:
|
|
4057
4306
|
- args
|
4058
4307
|
- params
|
4059
4308
|
- parameters
|
4309
|
+
Allowlist: []
|
4060
4310
|
|
4061
4311
|
Style/OptionalArguments:
|
4062
4312
|
Description: >-
|
@@ -4158,6 +4408,16 @@ Style/Proc:
|
|
4158
4408
|
VersionAdded: '0.9'
|
4159
4409
|
VersionChanged: '0.18'
|
4160
4410
|
|
4411
|
+
Style/QuotedSymbols:
|
4412
|
+
Description: 'Use a consistent style for quoted symbols.'
|
4413
|
+
Enabled: true
|
4414
|
+
VersionAdded: '1.16'
|
4415
|
+
EnforcedStyle: same_as_string_literals
|
4416
|
+
SupportedStyles:
|
4417
|
+
- same_as_string_literals
|
4418
|
+
- single_quotes
|
4419
|
+
- double_quotes
|
4420
|
+
|
4161
4421
|
Style/RaiseArgs:
|
4162
4422
|
Description: 'Checks the arguments passed to raise/fail.'
|
4163
4423
|
StyleGuide: '#exception-class-messages'
|
@@ -4303,12 +4563,19 @@ Style/RedundantSelfAssignment:
|
|
4303
4563
|
Safe: false
|
4304
4564
|
VersionAdded: '0.90'
|
4305
4565
|
|
4566
|
+
Style/RedundantSelfAssignmentBranch:
|
4567
|
+
Description: 'Checks for places where conditional branch makes redundant self-assignment.'
|
4568
|
+
Enabled: true
|
4569
|
+
VersionAdded: '1.19'
|
4570
|
+
|
4306
4571
|
Style/RedundantSort:
|
4307
4572
|
Description: >-
|
4308
4573
|
Use `min` instead of `sort.first`,
|
4309
4574
|
`max_by` instead of `sort_by...last`, etc.
|
4310
4575
|
Enabled: true
|
4311
4576
|
VersionAdded: '0.76'
|
4577
|
+
VersionChanged: '1.22'
|
4578
|
+
Safe: false
|
4312
4579
|
|
4313
4580
|
Style/RedundantSortBy:
|
4314
4581
|
Description: 'Use `sort` instead of `sort_by { |x| x }`.'
|
@@ -4389,6 +4656,12 @@ Style/Sample:
|
|
4389
4656
|
Enabled: true
|
4390
4657
|
VersionAdded: '0.30'
|
4391
4658
|
|
4659
|
+
Style/SelectByRegexp:
|
4660
|
+
Description: 'Prefer grep/grep_v to select/reject with a regexp match.'
|
4661
|
+
Enabled: true
|
4662
|
+
SafeAutoCorrect: false
|
4663
|
+
VersionAdded: '1.22'
|
4664
|
+
|
4392
4665
|
Style/SelfAssignment:
|
4393
4666
|
Description: >-
|
4394
4667
|
Checks for places where self-assignment shorthand should have
|
@@ -4474,6 +4747,7 @@ Style/SpecialGlobalVars:
|
|
4474
4747
|
VersionAdded: '0.13'
|
4475
4748
|
VersionChanged: '0.36'
|
4476
4749
|
SafeAutoCorrect: false
|
4750
|
+
RequireEnglish: true
|
4477
4751
|
EnforcedStyle: use_english_names
|
4478
4752
|
SupportedStyles:
|
4479
4753
|
- use_perl_names
|
@@ -4515,7 +4789,8 @@ Style/StringConcatenation:
|
|
4515
4789
|
Enabled: true
|
4516
4790
|
Safe: false
|
4517
4791
|
VersionAdded: '0.89'
|
4518
|
-
VersionChanged: '1.
|
4792
|
+
VersionChanged: '1.18'
|
4793
|
+
Mode: aggressive
|
4519
4794
|
|
4520
4795
|
Style/StringHashKeys:
|
4521
4796
|
Description: 'Prefer symbols instead of strings as hash keys.'
|
@@ -4573,8 +4848,9 @@ Style/StructInheritance:
|
|
4573
4848
|
Description: 'Checks for inheritance from Struct.new.'
|
4574
4849
|
StyleGuide: '#no-extend-struct-new'
|
4575
4850
|
Enabled: true
|
4851
|
+
SafeAutoCorrect: false
|
4576
4852
|
VersionAdded: '0.29'
|
4577
|
-
VersionChanged: '
|
4853
|
+
VersionChanged: '1.20'
|
4578
4854
|
|
4579
4855
|
Style/SwapValues:
|
4580
4856
|
Description: 'This cop enforces the use of shorthand-style swapping of 2 variables.'
|
@@ -4625,6 +4901,12 @@ Style/TernaryParentheses:
|
|
4625
4901
|
- require_parentheses_when_complex
|
4626
4902
|
AllowSafeAssignment: true
|
4627
4903
|
|
4904
|
+
Style/TopLevelMethodDefinition:
|
4905
|
+
Description: 'This cop looks for top-level method definitions.'
|
4906
|
+
StyleGuide: '#top-level-methods'
|
4907
|
+
Enabled: false
|
4908
|
+
VersionAdded: '1.15'
|
4909
|
+
|
4628
4910
|
Style/TrailingBodyOnClass:
|
4629
4911
|
Description: 'Class body goes below class statement.'
|
4630
4912
|
Enabled: true
|
@@ -4711,7 +4993,7 @@ Style/TrivialAccessors:
|
|
4711
4993
|
StyleGuide: '#attr_family'
|
4712
4994
|
Enabled: true
|
4713
4995
|
VersionAdded: '0.9'
|
4714
|
-
VersionChanged: '
|
4996
|
+
VersionChanged: '1.15'
|
4715
4997
|
# When set to `false` the cop will suggest the use of accessor methods
|
4716
4998
|
# in situations like:
|
4717
4999
|
#
|
@@ -4730,7 +5012,7 @@ Style/TrivialAccessors:
|
|
4730
5012
|
# on_exception :restart
|
4731
5013
|
#
|
4732
5014
|
# Commonly used in DSLs
|
4733
|
-
AllowDSLWriters:
|
5015
|
+
AllowDSLWriters: true
|
4734
5016
|
IgnoreClassMethods: false
|
4735
5017
|
AllowedMethods:
|
4736
5018
|
- to_ary
|
@@ -4787,7 +5069,7 @@ Style/VariableInterpolation:
|
|
4787
5069
|
|
4788
5070
|
Style/WhenThen:
|
4789
5071
|
Description: 'Use when x then ... for one-line cases.'
|
4790
|
-
StyleGuide: '#
|
5072
|
+
StyleGuide: '#no-when-semicolons'
|
4791
5073
|
Enabled: true
|
4792
5074
|
VersionAdded: '0.9'
|
4793
5075
|
|
@@ -4811,7 +5093,7 @@ Style/WordArray:
|
|
4811
5093
|
StyleGuide: '#percent-w'
|
4812
5094
|
Enabled: false
|
4813
5095
|
VersionAdded: '0.9'
|
4814
|
-
VersionChanged: '
|
5096
|
+
VersionChanged: '1.19'
|
4815
5097
|
EnforcedStyle: percent
|
4816
5098
|
SupportedStyles:
|
4817
5099
|
# percent style: %w(word1 word2)
|