makandra-rubocop 2.0.0 → 3.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22481ad5474493fa559e8ce48925b8bd24fc2563cc49b28b06fc6e438bf08c2a
4
- data.tar.gz: 9faa2aabe31725dbb720dec5793de09fd9d9b4a9cdb761db72d0869888123b8c
3
+ metadata.gz: b0942fa4b06e6919c0158759988528dbbb5d390c38640259ad87c9282c17f762
4
+ data.tar.gz: ee7fe82d6916b524afe242425a9d35c6450491c66623c94801b8cdc48f7d10f1
5
5
  SHA512:
6
- metadata.gz: 03d2b5c4955d4e5a51731253899329c81995b15f82bfe677c9e2315e59a05087b4eadce86a65c9b20310802fddcfcb54621f4e0a0e3b4f13ee2fd7dc4897c978
7
- data.tar.gz: f39ae0691ca804b9490a6c2d96b005b61957777bfd55b33dc2bb2edacc471d0c71fbdbc020e3f2a090a8b7d04b04bc0e0a29eb865297ff02d4778ed1bf2dec3b
6
+ metadata.gz: e1b191539a58bb8ec1f51f0a18988b52cdfcbdc37110438868abb2c4de1abbfa63f16a8afe3cbba4b5b5787fe495360f41951d1c2db8f488ca1a5f1b1c8ee5a3
7
+ data.tar.gz: b8a345569f94cae49240def4b124ee93ef940ca5e12ed65bb091d8ceadb04b7a6ac1cd97d1cdc414ccbaac7d58b95f876e986d4386ab05c2425078d37a4d50f5
@@ -13,6 +13,19 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
13
13
 
14
14
  -
15
15
 
16
+
17
+ ## 3.0.0 - 2019-02-28
18
+
19
+ ### Breaking changes
20
+
21
+ - Upgrade Rubocop from 0.62.0 to [0.65.0](https://github.com/rubocop-hq/rubocop/blob/2e52af0e33cc6387f7c8495b52f66c8f2f46a804/CHANGELOG.md#0650-2019-02-19)
22
+
23
+ ### Compatible changes
24
+
25
+ - Disable `Style/MultilineBlockChain` for `spec/**/*`
26
+ - Disable `Layout/ClosingParenthesisIndentation`
27
+
28
+
16
29
  ## 2.0.0 - 2019-01-31
17
30
 
18
31
  ### Breaking changes
@@ -1,25 +1,27 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- makandra-rubocop (1.0.0)
5
- rubocop (~> 0.62.0)
4
+ makandra-rubocop (3.0.0)
5
+ rubocop (~> 0.65.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  ast (2.4.0)
11
11
  jaro_winkler (1.5.2)
12
- parallel (1.12.1)
13
- parser (2.5.3.0)
12
+ parallel (1.14.0)
13
+ parser (2.6.0.0)
14
14
  ast (~> 2.4.0)
15
15
  powerpack (0.1.2)
16
+ psych (3.1.0)
16
17
  rainbow (3.0.0)
17
18
  rake (12.3.2)
18
- rubocop (0.62.0)
19
+ rubocop (0.65.0)
19
20
  jaro_winkler (~> 1.5.1)
20
21
  parallel (~> 1.10)
21
22
  parser (>= 2.5, != 2.5.1.1)
22
23
  powerpack (~> 0.1)
24
+ psych (>= 3.1.0)
23
25
  rainbow (>= 2.2.2, < 4.0)
24
26
  ruby-progressbar (~> 1.7)
25
27
  unicode-display_width (~> 1.4.0)
@@ -159,9 +159,9 @@ Bundler/GemComment:
159
159
 
160
160
  Bundler/InsecureProtocolSource:
161
161
  Description: >-
162
- The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
163
- because HTTP requests are insecure. Please change your source to
164
- 'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
162
+ The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
163
+ because HTTP requests are insecure. Please change your source to
164
+ 'https://rubygems.org' if possible, or 'http://rubygems.org' if not.
165
165
  Enabled: true
166
166
  VersionAdded: '0.50'
167
167
  Include:
@@ -171,7 +171,7 @@ Bundler/InsecureProtocolSource:
171
171
 
172
172
  Bundler/OrderedGems:
173
173
  Description: >-
174
- Gems within groups in the Gemfile should be alphabetically sorted.
174
+ Gems within groups in the Gemfile should be alphabetically sorted.
175
175
  Enabled: false
176
176
  VersionAdded: '0.46'
177
177
  VersionChanged: '0.47'
@@ -192,7 +192,7 @@ Gemspec/DuplicatedAssignment:
192
192
 
193
193
  Gemspec/OrderedDependencies:
194
194
  Description: >-
195
- Dependencies in the gemspec should be alphabetically sorted.
195
+ Dependencies in the gemspec should be alphabetically sorted.
196
196
  Enabled: false
197
197
  VersionAdded: '0.51'
198
198
  TreatCommentsAsGroupSeparators: true
@@ -223,16 +223,16 @@ Layout/AccessModifierIndentation:
223
223
 
224
224
  Layout/AlignArray:
225
225
  Description: >-
226
- Align the elements of an array literal if they span more than
227
- one line.
226
+ Align the elements of an array literal if they span more than
227
+ one line.
228
228
  StyleGuide: '#align-multiline-arrays'
229
229
  Enabled: false
230
230
  VersionAdded: '0.49'
231
231
 
232
232
  Layout/AlignHash:
233
233
  Description: >-
234
- Align the elements of a hash literal if they span more than
235
- one line.
234
+ Align the elements of a hash literal if they span more than
235
+ one line.
236
236
  Enabled: false
237
237
  VersionAdded: '0.49'
238
238
  # Alignment of entries using hash rocket as separator. Valid values are:
@@ -307,8 +307,8 @@ Layout/AlignHash:
307
307
 
308
308
  Layout/AlignParameters:
309
309
  Description: >-
310
- Align the parameters of a method call if they span more
311
- than one line.
310
+ Align the parameters of a method call if they span more
311
+ than one line.
312
312
  StyleGuide: '#no-double-indent'
313
313
  Enabled: false
314
314
  VersionAdded: '0.49'
@@ -379,13 +379,13 @@ Layout/ClassStructure:
379
379
  - prepend
380
380
  - extend
381
381
  ExpectedOrder:
382
- - module_inclusion
383
- - constants
384
- - public_class_methods
385
- - initializer
386
- - public_methods
387
- - protected_methods
388
- - private_methods
382
+ - module_inclusion
383
+ - constants
384
+ - public_class_methods
385
+ - initializer
386
+ - public_methods
387
+ - protected_methods
388
+ - private_methods
389
389
 
390
390
  Layout/ClosingHeredocIndentation:
391
391
  Description: 'Checks the indentation of here document closings.'
@@ -394,7 +394,7 @@ Layout/ClosingHeredocIndentation:
394
394
 
395
395
  Layout/ClosingParenthesisIndentation:
396
396
  Description: 'Checks the indentation of hanging closing parentheses.'
397
- Enabled: true
397
+ Enabled: false # See https://github.com/makandra/makandra-rubocop/issues/3 for more details
398
398
  VersionAdded: '0.49'
399
399
 
400
400
  Layout/CommentIndentation:
@@ -404,8 +404,8 @@ Layout/CommentIndentation:
404
404
 
405
405
  Layout/ConditionPosition:
406
406
  Description: >-
407
- Checks for condition placed in a confusing position relative to
408
- the keyword.
407
+ Checks for condition placed in a confusing position relative to
408
+ the keyword.
409
409
  StyleGuide: '#same-line-condition'
410
410
  Enabled: true
411
411
  VersionAdded: '0.53'
@@ -588,29 +588,29 @@ Layout/ExtraSpacing:
588
588
 
589
589
  Layout/FirstArrayElementLineBreak:
590
590
  Description: >-
591
- Checks for a line break before the first element in a
592
- multi-line array.
591
+ Checks for a line break before the first element in a
592
+ multi-line array.
593
593
  Enabled: false
594
594
  VersionAdded: '0.49'
595
595
 
596
596
  Layout/FirstHashElementLineBreak:
597
597
  Description: >-
598
- Checks for a line break before the first element in a
599
- multi-line hash.
598
+ Checks for a line break before the first element in a
599
+ multi-line hash.
600
600
  Enabled: false
601
601
  VersionAdded: '0.49'
602
602
 
603
603
  Layout/FirstMethodArgumentLineBreak:
604
604
  Description: >-
605
- Checks for a line break before the first argument in a
606
- multi-line method call.
605
+ Checks for a line break before the first argument in a
606
+ multi-line method call.
607
607
  Enabled: false
608
608
  VersionAdded: '0.49'
609
609
 
610
610
  Layout/FirstMethodParameterLineBreak:
611
611
  Description: >-
612
- Checks for a line break before the first parameter in a
613
- multi-line method parameter definition.
612
+ Checks for a line break before the first parameter in a
613
+ multi-line method parameter definition.
614
614
  Enabled: false
615
615
  VersionAdded: '0.49'
616
616
 
@@ -641,8 +641,8 @@ Layout/FirstParameterIndentation:
641
641
 
642
642
  Layout/IndentArray:
643
643
  Description: >-
644
- Checks the indentation of the first element in an array
645
- literal.
644
+ Checks the indentation of the first element in an array
645
+ literal.
646
646
  Enabled: true
647
647
  VersionAdded: '0.49'
648
648
  # The value `special_inside_parentheses` means that array literals with
@@ -667,8 +667,8 @@ Layout/IndentArray:
667
667
 
668
668
  Layout/IndentAssignment:
669
669
  Description: >-
670
- Checks the indentation of the first line of the
671
- right-hand-side of a multi-line assignment.
670
+ Checks the indentation of the first line of the
671
+ right-hand-side of a multi-line assignment.
672
672
  Enabled: true
673
673
  VersionAdded: '0.49'
674
674
  # By default, the indentation width from `Layout/IndentationWidth` is used
@@ -756,9 +756,9 @@ Layout/LeadingCommentSpace:
756
756
 
757
757
  Layout/MultilineArrayBraceLayout:
758
758
  Description: >-
759
- Checks that the closing brace in an array literal is
760
- either on the same line as the last array element, or
761
- a new line.
759
+ Checks that the closing brace in an array literal is
760
+ either on the same line as the last array element, or
761
+ a new line.
762
762
  Enabled: true
763
763
  VersionAdded: '0.49'
764
764
  EnforcedStyle: symmetrical
@@ -799,9 +799,9 @@ Layout/MultilineBlockLayout:
799
799
 
800
800
  Layout/MultilineHashBraceLayout:
801
801
  Description: >-
802
- Checks that the closing brace in a hash literal is
803
- either on the same line as the last hash element, or
804
- a new line.
802
+ Checks that the closing brace in a hash literal is
803
+ either on the same line as the last hash element, or
804
+ a new line.
805
805
  Enabled: true
806
806
  VersionAdded: '0.49'
807
807
  EnforcedStyle: symmetrical
@@ -815,9 +815,9 @@ Layout/MultilineHashBraceLayout:
815
815
 
816
816
  Layout/MultilineMethodCallBraceLayout:
817
817
  Description: >-
818
- Checks that the closing brace in a method call is
819
- either on the same line as the last method argument, or
820
- a new line.
818
+ Checks that the closing brace in a method call is
819
+ either on the same line as the last method argument, or
820
+ a new line.
821
821
  Enabled: true
822
822
  VersionAdded: '0.49'
823
823
  EnforcedStyle: new_line
@@ -831,8 +831,8 @@ Layout/MultilineMethodCallBraceLayout:
831
831
 
832
832
  Layout/MultilineMethodCallIndentation:
833
833
  Description: >-
834
- Checks indentation of method calls with the dot operator
835
- that span more than one line.
834
+ Checks indentation of method calls with the dot operator
835
+ that span more than one line.
836
836
  Enabled: true
837
837
  VersionAdded: '0.49'
838
838
  EnforcedStyle: indented
@@ -846,9 +846,9 @@ Layout/MultilineMethodCallIndentation:
846
846
 
847
847
  Layout/MultilineMethodDefinitionBraceLayout:
848
848
  Description: >-
849
- Checks that the closing brace in a method definition is
850
- either on the same line as the last method parameter, or
851
- a new line.
849
+ Checks that the closing brace in a method definition is
850
+ either on the same line as the last method parameter, or
851
+ a new line.
852
852
  Enabled: true
853
853
  VersionAdded: '0.49'
854
854
  EnforcedStyle: symmetrical
@@ -862,8 +862,8 @@ Layout/MultilineMethodDefinitionBraceLayout:
862
862
 
863
863
  Layout/MultilineOperationIndentation:
864
864
  Description: >-
865
- Checks indentation of binary operations that span more than
866
- one line.
865
+ Checks indentation of binary operations that span more than
866
+ one line.
867
867
  Enabled: true
868
868
  VersionAdded: '0.49'
869
869
  EnforcedStyle: indented
@@ -893,8 +893,8 @@ Layout/SpaceAfterComma:
893
893
 
894
894
  Layout/SpaceAfterMethodName:
895
895
  Description: >-
896
- Do not put a space between a method name and the opening
897
- parenthesis in a method definition.
896
+ Do not put a space between a method name and the opening
897
+ parenthesis in a method definition.
898
898
  StyleGuide: '#parens-no-spaces'
899
899
  Enabled: true
900
900
  VersionAdded: '0.49'
@@ -922,9 +922,9 @@ Layout/SpaceAroundBlockParameters:
922
922
 
923
923
  Layout/SpaceAroundEqualsInParameterDefault:
924
924
  Description: >-
925
- Checks that the equals signs in parameter default assignments
926
- have or don't have surrounding space depending on
927
- configuration.
925
+ Checks that the equals signs in parameter default assignments
926
+ have or don't have surrounding space depending on
927
+ configuration.
928
928
  StyleGuide: '#spaces-around-equals'
929
929
  Enabled: true
930
930
  VersionAdded: '0.49'
@@ -950,8 +950,8 @@ Layout/SpaceAroundOperators:
950
950
 
951
951
  Layout/SpaceBeforeBlockBraces:
952
952
  Description: >-
953
- Checks that the left block brace has or doesn't have space
954
- before it.
953
+ Checks that the left block brace has or doesn't have space
954
+ before it.
955
955
  Enabled: true
956
956
  VersionAdded: '0.49'
957
957
  EnforcedStyle: space
@@ -971,15 +971,15 @@ Layout/SpaceBeforeComma:
971
971
 
972
972
  Layout/SpaceBeforeComment:
973
973
  Description: >-
974
- Checks for missing space between code and a comment on the
975
- same line.
974
+ Checks for missing space between code and a comment on the
975
+ same line.
976
976
  Enabled: true
977
977
  VersionAdded: '0.49'
978
978
 
979
979
  Layout/SpaceBeforeFirstArg:
980
980
  Description: >-
981
- Checks that exactly one space is used between a method name
982
- and the first argument for method calls without parentheses.
981
+ Checks that exactly one space is used between a method name
982
+ and the first argument for method calls without parentheses.
983
983
  Enabled: true
984
984
  VersionAdded: '0.49'
985
985
  # When `true`, allows most uses of extra spacing if the intent is to align
@@ -1024,9 +1024,9 @@ Layout/SpaceInsideArrayPercentLiteral:
1024
1024
 
1025
1025
  Layout/SpaceInsideBlockBraces:
1026
1026
  Description: >-
1027
- Checks that block braces have or don't have surrounding space.
1028
- For blocks taking parameters, checks that the left brace has
1029
- or doesn't have trailing space.
1027
+ Checks that block braces have or don't have surrounding space.
1028
+ For blocks taking parameters, checks that the left brace has
1029
+ or doesn't have trailing space.
1030
1030
  Enabled: true
1031
1031
  VersionAdded: '0.49'
1032
1032
  EnforcedStyle: space
@@ -1139,24 +1139,24 @@ Layout/TrailingWhitespace:
1139
1139
 
1140
1140
  Lint/AmbiguousBlockAssociation:
1141
1141
  Description: >-
1142
- Checks for ambiguous block association with method when param passed without
1143
- parentheses.
1142
+ Checks for ambiguous block association with method when param passed without
1143
+ parentheses.
1144
1144
  StyleGuide: '#syntax'
1145
1145
  Enabled: false
1146
1146
  VersionAdded: '0.48'
1147
1147
 
1148
1148
  Lint/AmbiguousOperator:
1149
1149
  Description: >-
1150
- Checks for ambiguous operators in the first argument of a
1151
- method invocation without parentheses.
1150
+ Checks for ambiguous operators in the first argument of a
1151
+ method invocation without parentheses.
1152
1152
  StyleGuide: '#method-invocation-parens'
1153
1153
  Enabled: false
1154
1154
  VersionAdded: '0.17'
1155
1155
 
1156
1156
  Lint/AmbiguousRegexpLiteral:
1157
1157
  Description: >-
1158
- Checks for ambiguous regexp literals in the first argument of
1159
- a method invocation without parentheses.
1158
+ Checks for ambiguous regexp literals in the first argument of
1159
+ a method invocation without parentheses.
1160
1160
  Enabled: false
1161
1161
  VersionAdded: '0.17'
1162
1162
 
@@ -1193,6 +1193,12 @@ Lint/DeprecatedClassMethods:
1193
1193
  Enabled: true
1194
1194
  VersionAdded: '0.19'
1195
1195
 
1196
+ Lint/DisjunctiveAssignmentInConstructor:
1197
+ Description: 'In constructor, plain assignment is preferred over disjunctive.'
1198
+ Enabled: true
1199
+ Safe: false
1200
+ VersionAdded: '0.62'
1201
+
1196
1202
  Lint/DuplicateCaseCondition:
1197
1203
  Description: 'Do not repeat values in case conditionals.'
1198
1204
  Enabled: true
@@ -1257,10 +1263,16 @@ Lint/ErbNewArguments:
1257
1263
  Enabled: true
1258
1264
  VersionAdded: '0.56'
1259
1265
 
1266
+ Lint/FlipFlop:
1267
+ Description: 'Checks for flip-flops'
1268
+ StyleGuide: '#no-flip-flops'
1269
+ Enabled: true
1270
+ VersionAdded: '0.16'
1271
+
1260
1272
  Lint/FloatOutOfRange:
1261
1273
  Description: >-
1262
- Catches floating-point literals too large or small for Ruby to
1263
- represent.
1274
+ Catches floating-point literals too large or small for Ruby to
1275
+ represent.
1264
1276
  Enabled: true
1265
1277
  VersionAdded: '0.36'
1266
1278
 
@@ -1277,15 +1289,15 @@ Lint/HandleExceptions:
1277
1289
 
1278
1290
  Lint/ImplicitStringConcatenation:
1279
1291
  Description: >-
1280
- Checks for adjacent string literals on the same line, which
1281
- could better be represented as a single string literal.
1292
+ Checks for adjacent string literals on the same line, which
1293
+ could better be represented as a single string literal.
1282
1294
  Enabled: true
1283
1295
  VersionAdded: '0.36'
1284
1296
 
1285
1297
  Lint/IneffectiveAccessModifier:
1286
1298
  Description: >-
1287
- Checks for attempts to use `private` or `protected` to set
1288
- the visibility of a class method, which does not work.
1299
+ Checks for attempts to use `private` or `protected` to set
1300
+ the visibility of a class method, which does not work.
1289
1301
  Enabled: true
1290
1302
  VersionAdded: '0.36'
1291
1303
 
@@ -1317,8 +1329,8 @@ Lint/LiteralInInterpolation:
1317
1329
 
1318
1330
  Lint/Loop:
1319
1331
  Description: >-
1320
- Use Kernel#loop with break rather than begin/end/until or
1321
- begin/end/while for post-loop tests.
1332
+ Use Kernel#loop with break rather than begin/end/until or
1333
+ begin/end/while for post-loop tests.
1322
1334
  StyleGuide: '#loop-with-break'
1323
1335
  Enabled: true
1324
1336
  VersionAdded: '0.9'
@@ -1354,8 +1366,8 @@ Lint/NestedPercentLiteral:
1354
1366
 
1355
1367
  Lint/NextWithoutAccumulator:
1356
1368
  Description: >-
1357
- Do not omit the accumulator when calling `next`
1358
- in a `reduce`/`inject` block.
1369
+ Do not omit the accumulator when calling `next`
1370
+ in a `reduce`/`inject` block.
1359
1371
  Enabled: true
1360
1372
  VersionAdded: '0.36'
1361
1373
 
@@ -1376,28 +1388,28 @@ Lint/OrderedMagicComments:
1376
1388
 
1377
1389
  Lint/ParenthesesAsGroupedExpression:
1378
1390
  Description: >-
1379
- Checks for method calls with a space before the opening
1380
- parenthesis.
1391
+ Checks for method calls with a space before the opening
1392
+ parenthesis.
1381
1393
  StyleGuide: '#parens-no-spaces'
1382
1394
  Enabled: true
1383
1395
  VersionAdded: '0.12'
1384
1396
 
1385
1397
  Lint/PercentStringArray:
1386
1398
  Description: >-
1387
- Checks for unwanted commas and quotes in %w/%W literals.
1399
+ Checks for unwanted commas and quotes in %w/%W literals.
1388
1400
  Enabled: true
1389
1401
  VersionAdded: '0.41'
1390
1402
 
1391
1403
  Lint/PercentSymbolArray:
1392
1404
  Description: >-
1393
- Checks for unwanted commas and colons in %i/%I literals.
1405
+ Checks for unwanted commas and colons in %i/%I literals.
1394
1406
  Enabled: true
1395
1407
  VersionAdded: '0.41'
1396
1408
 
1397
1409
  Lint/RandOne:
1398
1410
  Description: >-
1399
- Checks for `rand(1)` calls. Such calls always return `0`
1400
- and most likely a mistake.
1411
+ Checks for `rand(1)` calls. Such calls always return `0`
1412
+ and most likely a mistake.
1401
1413
  Enabled: true
1402
1414
  VersionAdded: '0.36'
1403
1415
 
@@ -1413,15 +1425,15 @@ Lint/RedundantWithObject:
1413
1425
 
1414
1426
  Lint/RegexpAsCondition:
1415
1427
  Description: >-
1416
- Do not use regexp literal as a condition.
1417
- The regexp literal matches `$_` implicitly.
1428
+ Do not use regexp literal as a condition.
1429
+ The regexp literal matches `$_` implicitly.
1418
1430
  Enabled: true
1419
1431
  VersionAdded: '0.51'
1420
1432
 
1421
1433
  Lint/RequireParentheses:
1422
1434
  Description: >-
1423
- Use parentheses in the method call to avoid confusion
1424
- about precedence.
1435
+ Use parentheses in the method call to avoid confusion
1436
+ about precedence.
1425
1437
  Enabled: true
1426
1438
  VersionAdded: '0.18'
1427
1439
 
@@ -1456,9 +1468,9 @@ Lint/SafeNavigationChain:
1456
1468
 
1457
1469
  Lint/SafeNavigationConsistency:
1458
1470
  Description: >-
1459
- Check to make sure that if safe navigation is used for a method
1460
- call in an `&&` or `||` condition that safe navigation is used
1461
- for all method calls on that same object.
1471
+ Check to make sure that if safe navigation is used for a method
1472
+ call in an `&&` or `||` condition that safe navigation is used
1473
+ for all method calls on that same object.
1462
1474
  Enabled: true
1463
1475
  VersionAdded: '0.55'
1464
1476
  Whitelist:
@@ -1484,15 +1496,15 @@ Lint/ShadowedArgument:
1484
1496
 
1485
1497
  Lint/ShadowedException:
1486
1498
  Description: >-
1487
- Avoid rescuing a higher level exception
1488
- before a lower level exception.
1499
+ Avoid rescuing a higher level exception
1500
+ before a lower level exception.
1489
1501
  Enabled: true
1490
1502
  VersionAdded: '0.41'
1491
1503
 
1492
1504
  Lint/ShadowingOuterLocalVariable:
1493
1505
  Description: >-
1494
- Do not use the same name as outer local variable
1495
- for block arguments or block local variables.
1506
+ Do not use the same name as outer local variable
1507
+ for block arguments or block local variables.
1496
1508
  Enabled: true
1497
1509
  VersionAdded: '0.9'
1498
1510
 
@@ -1521,9 +1533,9 @@ Lint/UnifiedInteger:
1521
1533
 
1522
1534
  Lint/UnneededCopDisableDirective:
1523
1535
  Description: >-
1524
- Checks for rubocop:disable comments that can be removed.
1525
- Note: this cop is not disabled when disabling all cops.
1526
- It must be explicitly disabled.
1536
+ Checks for rubocop:disable comments that can be removed.
1537
+ Note: this cop is not disabled when disabling all cops.
1538
+ It must be explicitly disabled.
1527
1539
  Enabled: true
1528
1540
  VersionAdded: '0.53'
1529
1541
 
@@ -1567,12 +1579,12 @@ Lint/UnusedMethodArgument:
1567
1579
 
1568
1580
  Lint/UriEscapeUnescape:
1569
1581
  Description: >-
1570
- `URI.escape` method is obsolete and should not be used. Instead, use
1571
- `CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component`
1572
- depending on your specific use case.
1573
- Also `URI.unescape` method is obsolete and should not be used. Instead, use
1574
- `CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component`
1575
- depending on your specific use case.
1582
+ `URI.escape` method is obsolete and should not be used. Instead, use
1583
+ `CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component`
1584
+ depending on your specific use case.
1585
+ Also `URI.unescape` method is obsolete and should not be used. Instead, use
1586
+ `CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component`
1587
+ depending on your specific use case.
1576
1588
  Enabled: true
1577
1589
  VersionAdded: '0.50'
1578
1590
 
@@ -1620,8 +1632,8 @@ Lint/Void:
1620
1632
 
1621
1633
  Metrics/AbcSize:
1622
1634
  Description: >-
1623
- A calculated magnitude based on number of assignments,
1624
- branches, and conditions.
1635
+ A calculated magnitude based on number of assignments,
1636
+ branches, and conditions.
1625
1637
  Reference: 'http://c2.com/cgi/wiki?AbcMetric'
1626
1638
  Enabled: false
1627
1639
  VersionAdded: '0.27'
@@ -1660,8 +1672,8 @@ Metrics/ClassLength:
1660
1672
  # Avoid complex methods.
1661
1673
  Metrics/CyclomaticComplexity:
1662
1674
  Description: >-
1663
- A complexity metric that is strongly correlated to the number
1664
- of test cases needed to validate a method.
1675
+ A complexity metric that is strongly correlated to the number
1676
+ of test cases needed to validate a method.
1665
1677
  Enabled: false
1666
1678
  VersionAdded: '0.25'
1667
1679
  Max: 6
@@ -1715,8 +1727,8 @@ Metrics/ParameterLists:
1715
1727
 
1716
1728
  Metrics/PerceivedComplexity:
1717
1729
  Description: >-
1718
- A complexity metric geared towards measuring complexity for a
1719
- human reader.
1730
+ A complexity metric geared towards measuring complexity for a
1731
+ human reader.
1720
1732
  Enabled: false
1721
1733
  VersionAdded: '0.25'
1722
1734
  Max: 7
@@ -1888,8 +1900,8 @@ Naming/PredicateName:
1888
1900
 
1889
1901
  Naming/UncommunicativeBlockParamName:
1890
1902
  Description: >-
1891
- Checks for block parameter names that contain capital letters,
1892
- end in numbers, or do not meet a minimal length.
1903
+ Checks for block parameter names that contain capital letters,
1904
+ end in numbers, or do not meet a minimal length.
1893
1905
  Enabled: false
1894
1906
  VersionAdded: '0.53'
1895
1907
  # Parameter names may be equal to or greater than this value
@@ -1902,8 +1914,8 @@ Naming/UncommunicativeBlockParamName:
1902
1914
 
1903
1915
  Naming/UncommunicativeMethodParamName:
1904
1916
  Description: >-
1905
- Checks for method parameter names that contain capital letters,
1906
- end in numbers, or do not meet a minimal length.
1917
+ Checks for method parameter names that contain capital letters,
1918
+ end in numbers, or do not meet a minimal length.
1907
1919
  Enabled: false
1908
1920
  VersionAdded: '0.53'
1909
1921
  VersionChanged: '0.59'
@@ -1949,14 +1961,14 @@ Naming/VariableNumber:
1949
1961
 
1950
1962
  Performance/Caller:
1951
1963
  Description: >-
1952
- Use `caller(n..n)` instead of `caller`.
1964
+ Use `caller(n..n)` instead of `caller`.
1953
1965
  Enabled: true
1954
1966
  VersionAdded: '0.49'
1955
1967
 
1956
1968
  Performance/CaseWhenSplat:
1957
1969
  Description: >-
1958
- Reordering `when` conditions with a splat to the end
1959
- of the `when` branches can improve performance.
1970
+ Reordering `when` conditions with a splat to the end
1971
+ of the `when` branches can improve performance.
1960
1972
  Enabled: false
1961
1973
  AutoCorrect: false
1962
1974
  SafeAutoCorrect: false
@@ -1965,15 +1977,15 @@ Performance/CaseWhenSplat:
1965
1977
 
1966
1978
  Performance/Casecmp:
1967
1979
  Description: >-
1968
- Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`, or `== upcase`..
1980
+ Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`, or `== upcase`..
1969
1981
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringcasecmp-vs-stringdowncase---code'
1970
1982
  Enabled: false
1971
1983
  VersionAdded: '0.36'
1972
1984
 
1973
1985
  Performance/ChainArrayAllocation:
1974
1986
  Description: >-
1975
- Instead of chaining array methods that allocate new arrays, mutate an
1976
- existing array.
1987
+ Instead of chaining array methods that allocate new arrays, mutate an
1988
+ existing array.
1977
1989
  Reference: 'https://twitter.com/schneems/status/1034123879978029057'
1978
1990
  Enabled: false
1979
1991
  VersionAdded: '0.59'
@@ -1985,9 +1997,9 @@ Performance/CompareWithBlock:
1985
1997
 
1986
1998
  Performance/Count:
1987
1999
  Description: >-
1988
- Use `count` instead of `select...size`, `reject...size`,
1989
- `select...count`, `reject...count`, `select...length`,
1990
- and `reject...length`.
2000
+ Use `count` instead of `select...size`, `reject...size`,
2001
+ `select...count`, `reject...count`, `select...length`,
2002
+ and `reject...length`.
1991
2003
  # This cop has known compatibility issues with `ActiveRecord` and other
1992
2004
  # frameworks. ActiveRecord's `count` ignores the block that is passed to it.
1993
2005
  # For more information, see the documentation in the cop itself.
@@ -1999,8 +2011,8 @@ Performance/Count:
1999
2011
 
2000
2012
  Performance/Detect:
2001
2013
  Description: >-
2002
- Use `detect` instead of `select.first`, `find_all.first`,
2003
- `select.last`, and `find_all.last`.
2014
+ Use `detect` instead of `select.first`, `find_all.first`,
2015
+ `select.last`, and `find_all.last`.
2004
2016
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
2005
2017
  # This cop has known compatibility issues with `ActiveRecord` and other
2006
2018
  # frameworks. `ActiveRecord` does not implement a `detect` method and `find`
@@ -2013,8 +2025,8 @@ Performance/Detect:
2013
2025
 
2014
2026
  Performance/DoubleStartEndWith:
2015
2027
  Description: >-
2016
- Use `str.{start,end}_with?(x, ..., y, ...)`
2017
- instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
2028
+ Use `str.{start,end}_with?(x, ..., y, ...)`
2029
+ instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
2018
2030
  Enabled: true
2019
2031
  VersionAdded: '0.36'
2020
2032
  VersionChanged: '0.48'
@@ -2041,9 +2053,9 @@ Performance/FixedSize:
2041
2053
 
2042
2054
  Performance/FlatMap:
2043
2055
  Description: >-
2044
- Use `Enumerable#flat_map`
2045
- instead of `Enumerable#map...Array#flatten(1)`
2046
- or `Enumberable#collect..Array#flatten(1)`
2056
+ Use `Enumerable#flat_map`
2057
+ instead of `Enumerable#map...Array#flatten(1)`
2058
+ or `Enumberable#collect..Array#flatten(1)`
2047
2059
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
2048
2060
  Enabled: true
2049
2061
  VersionAdded: '0.30'
@@ -2076,6 +2088,7 @@ Performance/RangeInclude:
2076
2088
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#cover-vs-include-code'
2077
2089
  Enabled: true
2078
2090
  VersionAdded: '0.36'
2091
+ Safe: false
2079
2092
 
2080
2093
  Performance/RedundantBlockCall:
2081
2094
  Description: 'Use `yield` instead of `block.call`.'
@@ -2085,8 +2098,8 @@ Performance/RedundantBlockCall:
2085
2098
 
2086
2099
  Performance/RedundantMatch:
2087
2100
  Description: >-
2088
- Use `=~` instead of `String#match` or `Regexp#match` in a context where the
2089
- returned `MatchData` is not needed.
2101
+ Use `=~` instead of `String#match` or `Regexp#match` in a context where the
2102
+ returned `MatchData` is not needed.
2090
2103
  Enabled: true
2091
2104
  VersionAdded: '0.36'
2092
2105
 
@@ -2105,8 +2118,8 @@ Performance/RedundantSortBy:
2105
2118
 
2106
2119
  Performance/RegexpMatch:
2107
2120
  Description: >-
2108
- Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`,
2109
- `Regexp#===`, or `=~` when `MatchData` is not used.
2121
+ Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`,
2122
+ `Regexp#===`, or `=~` when `MatchData` is not used.
2110
2123
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#regexp-vs-stringmatch-vs-string-vs-stringmatch-code-'
2111
2124
  Enabled: true
2112
2125
  VersionAdded: '0.47'
@@ -2119,16 +2132,16 @@ Performance/ReverseEach:
2119
2132
 
2120
2133
  Performance/Sample:
2121
2134
  Description: >-
2122
- Use `sample` instead of `shuffle.first`,
2123
- `shuffle.last`, and `shuffle[Integer]`.
2135
+ Use `sample` instead of `shuffle.first`,
2136
+ `shuffle.last`, and `shuffle[Integer]`.
2124
2137
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
2125
2138
  Enabled: true
2126
2139
  VersionAdded: '0.30'
2127
2140
 
2128
2141
  Performance/Size:
2129
2142
  Description: >-
2130
- Use `size` instead of `count` for counting
2131
- the number of elements in `Array` and `Hash`.
2143
+ Use `size` instead of `count` for counting
2144
+ the number of elements in `Array` and `Hash`.
2132
2145
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraylength-vs-arraysize-vs-arraycount-code'
2133
2146
  Enabled: true
2134
2147
  VersionAdded: '0.30'
@@ -2147,9 +2160,9 @@ Performance/StartWith:
2147
2160
 
2148
2161
  Performance/StringReplacement:
2149
2162
  Description: >-
2150
- Use `tr` instead of `gsub` when you are replacing the same
2151
- number of characters. Use `delete` instead of `gsub` when
2152
- you are deleting characters.
2163
+ Use `tr` instead of `gsub` when you are replacing the same
2164
+ number of characters. Use `delete` instead of `gsub` when
2165
+ you are deleting characters.
2153
2166
  Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
2154
2167
  Enabled: false
2155
2168
  VersionAdded: '0.33'
@@ -2169,8 +2182,8 @@ Performance/UnfreezeString:
2169
2182
 
2170
2183
  Performance/UnneededSort:
2171
2184
  Description: >-
2172
- Use `min` instead of `sort.first`,
2173
- `max_by` instead of `sort_by...last`, etc.
2185
+ Use `min` instead of `sort.first`,
2186
+ `max_by` instead of `sort_by...last`, etc.
2174
2187
  Enabled: true
2175
2188
  VersionAdded: '0.55'
2176
2189
 
@@ -2199,17 +2212,17 @@ Rails/ActionFilter:
2199
2212
 
2200
2213
  Rails/ActiveRecordAliases:
2201
2214
  Description: >-
2202
- Avoid Active Record aliases:
2203
- Use `update` instead of `update_attributes`.
2204
- Use `update!` instead of `update_attributes!`.
2215
+ Avoid Active Record aliases:
2216
+ Use `update` instead of `update_attributes`.
2217
+ Use `update!` instead of `update_attributes!`.
2205
2218
  Enabled: true
2206
2219
  VersionAdded: '0.53'
2207
2220
 
2208
2221
  Rails/ActiveSupportAliases:
2209
2222
  Description: >-
2210
- Avoid ActiveSupport aliases of standard ruby methods:
2211
- `String#starts_with?`, `String#ends_with?`,
2212
- `Array#append`, `Array#prepend`.
2223
+ Avoid ActiveSupport aliases of standard ruby methods:
2224
+ `String#starts_with?`, `String#ends_with?`,
2225
+ `Array#append`, `Array#prepend`.
2213
2226
  Enabled: false
2214
2227
  VersionAdded: '0.48'
2215
2228
 
@@ -2230,6 +2243,13 @@ Rails/AssertNot:
2230
2243
  Include:
2231
2244
  - '**/test/**/*'
2232
2245
 
2246
+ Rails/BelongsTo:
2247
+ Description: >-
2248
+ Use `optional: true` instead of `required: false` for
2249
+ `belongs_to` relations'
2250
+ Enabled: true
2251
+ VersionAdded: '0.62'
2252
+
2233
2253
  Rails/Blank:
2234
2254
  Description: 'Enforces use of `blank?`.'
2235
2255
  Enabled: true
@@ -2254,8 +2274,8 @@ Rails/BulkChangeTable:
2254
2274
 
2255
2275
  Rails/CreateTableWithTimestamps:
2256
2276
  Description: >-
2257
- Checks the migration for which timestamps are not included
2258
- when creating a new table.
2277
+ Checks the migration for which timestamps are not included
2278
+ when creating a new table.
2259
2279
  Enabled: true
2260
2280
  VersionAdded: '0.52'
2261
2281
  Include:
@@ -2263,8 +2283,8 @@ Rails/CreateTableWithTimestamps:
2263
2283
 
2264
2284
  Rails/Date:
2265
2285
  Description: >-
2266
- Checks the correct usage of date aware methods,
2267
- such as Date.today, Date.current etc.
2286
+ Checks the correct usage of date aware methods,
2287
+ such as Date.today, Date.current etc.
2268
2288
  Enabled: false # It's not that simple. Really.
2269
2289
  VersionAdded: '0.30'
2270
2290
  VersionChanged: '0.33'
@@ -2315,9 +2335,9 @@ Rails/EnvironmentComparison:
2315
2335
 
2316
2336
  Rails/Exit:
2317
2337
  Description: >-
2318
- Favor `fail`, `break`, `return`, etc. over `exit` in
2319
- application or library code outside of Rake files to avoid
2320
- exits during unit testing or running in production.
2338
+ Favor `fail`, `break`, `return`, etc. over `exit` in
2339
+ application or library code outside of Rake files to avoid
2340
+ exits during unit testing or running in production.
2321
2341
  Enabled: true
2322
2342
  VersionAdded: '0.41'
2323
2343
  Include:
@@ -2386,6 +2406,14 @@ Rails/HttpStatus:
2386
2406
  - numeric
2387
2407
  - symbolic
2388
2408
 
2409
+ Rails/IgnoredSkipActionFilterOption:
2410
+ Description: 'Checks that `if` and `only` (or `except`) are not used together as options of `skip_*` action filter.'
2411
+ Reference: 'https://api.rubyonrails.org/classes/AbstractController/Callbacks/ClassMethods.html#method-i-_normalize_callback_options'
2412
+ Enabled: true
2413
+ VersionAdded: '0.63'
2414
+ Include:
2415
+ - app/controllers/**/*.rb
2416
+
2389
2417
  Rails/InverseOf:
2390
2418
  Description: 'Checks for associations where the inverse cannot be determined automatically.'
2391
2419
  Enabled: true
@@ -2453,8 +2481,8 @@ Rails/Present:
2453
2481
 
2454
2482
  Rails/ReadWriteAttribute:
2455
2483
  Description: >-
2456
- Checks for read_attribute(:attr) and
2457
- write_attribute(:attr, val).
2484
+ Checks for read_attribute(:attr) and
2485
+ write_attribute(:attr, val).
2458
2486
  StyleGuide: 'https://github.com/rubocop-hq/rails-style-guide#read-attribute'
2459
2487
  Enabled: true
2460
2488
  VersionAdded: '0.20'
@@ -2467,6 +2495,11 @@ Rails/RedundantReceiverInWithOptions:
2467
2495
  Enabled: true
2468
2496
  VersionAdded: '0.52'
2469
2497
 
2498
+ Rails/ReflectionClassName:
2499
+ Description: 'Use a string for `class_name` option value in the definition of a reflection.'
2500
+ Enabled: true
2501
+ VersionAdded: '0.64'
2502
+
2470
2503
  Rails/RefuteMethods:
2471
2504
  Description: 'Use `assert_not` methods instead of `refute` methods.'
2472
2505
  Enabled: true
@@ -2527,8 +2560,8 @@ Rails/ScopeArgs:
2527
2560
 
2528
2561
  Rails/SkipsModelValidations:
2529
2562
  Description: >-
2530
- Use methods that skips model validations with caution.
2531
- See reference for more information.
2563
+ Use methods that skips model validations with caution.
2564
+ See reference for more information.
2532
2565
  Reference: 'https://guides.rubyonrails.org/active_record_validations.html#skipping-validations'
2533
2566
  Enabled: false
2534
2567
  VersionAdded: '0.47'
@@ -2598,8 +2631,8 @@ Security/Eval:
2598
2631
 
2599
2632
  Security/JSONLoad:
2600
2633
  Description: >-
2601
- Prefer usage of `JSON.parse` over `JSON.load` due to potential
2602
- security issues. See reference for more information.
2634
+ Prefer usage of `JSON.parse` over `JSON.load` due to potential
2635
+ security issues. See reference for more information.
2603
2636
  Reference: 'https://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load'
2604
2637
  Enabled: true
2605
2638
  VersionAdded: '0.43'
@@ -2611,8 +2644,8 @@ Security/JSONLoad:
2611
2644
 
2612
2645
  Security/MarshalLoad:
2613
2646
  Description: >-
2614
- Avoid using of `Marshal.load` or `Marshal.restore` due to potential
2615
- security issues. See reference for more information.
2647
+ Avoid using of `Marshal.load` or `Marshal.restore` due to potential
2648
+ security issues. See reference for more information.
2616
2649
  Reference: 'https://ruby-doc.org/core-2.3.3/Marshal.html#module-Marshal-label-Security+considerations'
2617
2650
  Enabled: true
2618
2651
  VersionAdded: '0.47'
@@ -2625,8 +2658,8 @@ Security/Open:
2625
2658
 
2626
2659
  Security/YAMLLoad:
2627
2660
  Description: >-
2628
- Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
2629
- security issues. See reference for more information.
2661
+ Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
2662
+ security issues. See reference for more information.
2630
2663
  Reference: 'https://ruby-doc.org/stdlib-2.3.3/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
2631
2664
  Enabled: true
2632
2665
  VersionAdded: '0.47'
@@ -2719,9 +2752,9 @@ Style/BlockComments:
2719
2752
 
2720
2753
  Style/BlockDelimiters:
2721
2754
  Description: >-
2722
- Avoid using {...} for multi-line blocks (multiline chaining is
2723
- always ugly).
2724
- Prefer {...} over do...end for single-line blocks.
2755
+ Avoid using {...} for multi-line blocks (multiline chaining is
2756
+ always ugly).
2757
+ Prefer {...} over do...end for single-line blocks.
2725
2758
  StyleGuide: '#single-line-blocks'
2726
2759
  Enabled: true
2727
2760
  VersionAdded: '0.30'
@@ -2932,8 +2965,8 @@ Style/CommandLiteral:
2932
2965
  # Checks formatting of special comments
2933
2966
  Style/CommentAnnotation:
2934
2967
  Description: >-
2935
- Checks formatting of special comments
2936
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
2968
+ Checks formatting of special comments
2969
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
2937
2970
  StyleGuide: '#annotate-keywords'
2938
2971
  Enabled: true
2939
2972
  VersionAdded: '0.10'
@@ -2952,9 +2985,9 @@ Style/CommentedKeyword:
2952
2985
 
2953
2986
  Style/ConditionalAssignment:
2954
2987
  Description: >-
2955
- Use the return value of `if` and `case` statements for
2956
- assignment to a variable and variable comparison instead
2957
- of assigning that variable inside of each branch.
2988
+ Use the return value of `if` and `case` statements for
2989
+ assignment to a variable and variable comparison instead
2990
+ of assigning that variable inside of each branch.
2958
2991
  Enabled: true # We usually want this, except when assigning multiple values. Disable, if this cop contradicts that.
2959
2992
  VersionAdded: '0.36'
2960
2993
  VersionChanged: '0.47'
@@ -3013,8 +3046,8 @@ Style/DefWithParentheses:
3013
3046
 
3014
3047
  Style/Dir:
3015
3048
  Description: >-
3016
- Use the `__dir__` method to retrieve the canonicalized
3017
- absolute path to the current file.
3049
+ Use the `__dir__` method to retrieve the canonicalized
3050
+ absolute path to the current file.
3018
3051
  Enabled: true
3019
3052
  VersionAdded: '0.50'
3020
3053
 
@@ -3043,8 +3076,8 @@ Style/DoubleNegation:
3043
3076
 
3044
3077
  Style/EachForSimpleLoop:
3045
3078
  Description: >-
3046
- Use `Integer#times` for a simple loop which iterates a fixed
3047
- number of times.
3079
+ Use `Integer#times` for a simple loop which iterates a fixed
3080
+ number of times.
3048
3081
  Enabled: true
3049
3082
  VersionAdded: '0.41'
3050
3083
 
@@ -3130,12 +3163,6 @@ Style/ExpandPathArguments:
3130
3163
  Enabled: true
3131
3164
  VersionAdded: '0.53'
3132
3165
 
3133
- Style/FlipFlop:
3134
- Description: 'Checks for flip flops'
3135
- StyleGuide: '#no-flip-flops'
3136
- Enabled: true
3137
- VersionAdded: '0.16'
3138
-
3139
3166
  Style/For:
3140
3167
  Description: 'Checks use of for or each in multiline loops.'
3141
3168
  StyleGuide: '#no-for-loops'
@@ -3175,8 +3202,8 @@ Style/FormatStringToken:
3175
3202
 
3176
3203
  Style/FrozenStringLiteralComment:
3177
3204
  Description: >-
3178
- Add the frozen_string_literal comment to the top of files
3179
- to help transition from Ruby 2.3.0 to Ruby 3.0.
3205
+ Add the frozen_string_literal comment to the top of files
3206
+ to help transition to frozen string literals by default.
3180
3207
  Enabled: false
3181
3208
  VersionAdded: '0.36'
3182
3209
  VersionChanged: '0.47'
@@ -3215,8 +3242,8 @@ Style/GuardClause:
3215
3242
 
3216
3243
  Style/HashSyntax:
3217
3244
  Description: >-
3218
- Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
3219
- { :a => 1, :b => 2 }.
3245
+ Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
3246
+ { :a => 1, :b => 2 }.
3220
3247
  StyleGuide: '#hash-literals'
3221
3248
  Enabled: true
3222
3249
  VersionAdded: '0.9'
@@ -3238,9 +3265,9 @@ Style/HashSyntax:
3238
3265
 
3239
3266
  Style/IdenticalConditionalBranches:
3240
3267
  Description: >-
3241
- Checks that conditional statements do not have an identical
3242
- line at the end of each branch, which can validly be moved
3243
- out of the conditional.
3268
+ Checks that conditional statements do not have an identical
3269
+ line at the end of each branch, which can validly be moved
3270
+ out of the conditional.
3244
3271
  Enabled: true
3245
3272
  VersionAdded: '0.36'
3246
3273
 
@@ -3251,8 +3278,8 @@ Style/IfInsideElse:
3251
3278
 
3252
3279
  Style/IfUnlessModifier:
3253
3280
  Description: >-
3254
- Favor modifier if/unless usage when you have a
3255
- single-line body.
3281
+ Favor modifier if/unless usage when you have a
3282
+ single-line body.
3256
3283
  StyleGuide: '#if-as-a-modifier'
3257
3284
  Enabled: false
3258
3285
  VersionAdded: '0.9'
@@ -3260,7 +3287,7 @@ Style/IfUnlessModifier:
3260
3287
 
3261
3288
  Style/IfUnlessModifierOfIfUnless:
3262
3289
  Description: >-
3263
- Avoid modifier if/unless usage on conditionals.
3290
+ Avoid modifier if/unless usage on conditionals.
3264
3291
  Enabled: true
3265
3292
  VersionAdded: '0.39'
3266
3293
 
@@ -3272,8 +3299,8 @@ Style/IfWithSemicolon:
3272
3299
 
3273
3300
  Style/ImplicitRuntimeError:
3274
3301
  Description: >-
3275
- Use `raise` or `fail` with an explicit exception class and
3276
- message, rather than just a message.
3302
+ Use `raise` or `fail` with an explicit exception class and
3303
+ message, rather than just a message.
3277
3304
  Enabled: false
3278
3305
  VersionAdded: '0.41'
3279
3306
 
@@ -3292,8 +3319,8 @@ Style/InlineComment:
3292
3319
 
3293
3320
  Style/InverseMethods:
3294
3321
  Description: >-
3295
- Use the inverse method instead of `!.method`
3296
- if an inverse method is defined.
3322
+ Use the inverse method instead of `!.method`
3323
+ if an inverse method is defined.
3297
3324
  Enabled: true
3298
3325
  Safe: false
3299
3326
  VersionAdded: '0.48'
@@ -3351,10 +3378,12 @@ Style/LambdaCall:
3351
3378
 
3352
3379
  Style/LineEndConcatenation:
3353
3380
  Description: >-
3354
- Use \ instead of + or << to concatenate two string literals at
3355
- line end.
3381
+ Use \ instead of + or << to concatenate two string literals at
3382
+ line end.
3356
3383
  Enabled: true
3384
+ SafeAutoCorrect: false
3357
3385
  VersionAdded: '0.18'
3386
+ VersionChanged: '0.64'
3358
3387
 
3359
3388
  Style/MethodCallWithArgsParentheses:
3360
3389
  Description: 'Use parentheses for method calls with arguments.'
@@ -3366,6 +3395,7 @@ Style/MethodCallWithArgsParentheses:
3366
3395
  IgnoredMethods: []
3367
3396
  AllowParenthesesInMultilineCall: false
3368
3397
  AllowParenthesesInChaining: false
3398
+ AllowParenthesesInCamelCaseMethod: false
3369
3399
  EnforcedStyle: require_parentheses
3370
3400
  SupportedStyles:
3371
3401
  - require_parentheses
@@ -3387,8 +3417,8 @@ Style/MethodCalledOnDoEndBlock:
3387
3417
 
3388
3418
  Style/MethodDefParentheses:
3389
3419
  Description: >-
3390
- Checks if the method definitions have or don't have
3391
- parentheses.
3420
+ Checks if the method definitions have or don't have
3421
+ parentheses.
3392
3422
  StyleGuide: '#method-parens'
3393
3423
  Enabled: true
3394
3424
  VersionAdded: '0.16'
@@ -3407,18 +3437,18 @@ Style/MethodMissingSuper:
3407
3437
 
3408
3438
  Style/MinMax:
3409
3439
  Description: >-
3410
- Use `Enumerable#minmax` instead of `Enumerable#min`
3411
- and `Enumerable#max` in conjunction.'
3440
+ Use `Enumerable#minmax` instead of `Enumerable#min`
3441
+ and `Enumerable#max` in conjunction.'
3412
3442
  Enabled: true
3413
3443
  VersionAdded: '0.50'
3414
3444
 
3415
3445
  Style/MissingElse:
3416
3446
  Description: >-
3417
- Require if/case expressions to have an else branches.
3418
- If enabled, it is recommended that
3419
- Style/UnlessElse and Style/EmptyElse be enabled.
3420
- This will conflict with Style/EmptyElse if
3421
- Style/EmptyElse is configured to style "both"
3447
+ Require if/case expressions to have an else branches.
3448
+ If enabled, it is recommended that
3449
+ Style/UnlessElse and Style/EmptyElse be enabled.
3450
+ This will conflict with Style/EmptyElse if
3451
+ Style/EmptyElse is configured to style "both"
3422
3452
  Enabled: false
3423
3453
  VersionAdded: '0.30'
3424
3454
  VersionChanged: '0.38'
@@ -3433,8 +3463,8 @@ Style/MissingElse:
3433
3463
 
3434
3464
  Style/MissingRespondToMissing:
3435
3465
  Description: >-
3436
- Checks if `method_missing` is implemented
3437
- without implementing `respond_to_missing`.
3466
+ Checks if `method_missing` is implemented
3467
+ without implementing `respond_to_missing`.
3438
3468
  StyleGuide: '#no-method-missing'
3439
3469
  Enabled: true
3440
3470
  VersionAdded: '0.56'
@@ -3462,17 +3492,21 @@ Style/ModuleFunction:
3462
3492
  StyleGuide: '#module-function'
3463
3493
  Enabled: true
3464
3494
  VersionAdded: '0.11'
3465
- VersionChanged: '0.53'
3495
+ VersionChanged: '0.65'
3466
3496
  EnforcedStyle: module_function
3467
3497
  SupportedStyles:
3468
3498
  - module_function
3469
3499
  - extend_self
3500
+ Autocorrect: false
3501
+ SafeAutoCorrect: false
3470
3502
 
3471
3503
  Style/MultilineBlockChain:
3472
3504
  Description: 'Avoid multi-line chains of blocks.'
3473
3505
  StyleGuide: '#single-line-blocks'
3474
3506
  Enabled: true
3475
3507
  VersionAdded: '0.13'
3508
+ Exclude:
3509
+ - 'spec/**/*' # See https://github.com/makandra/makandra-rubocop/issues/5 for more details
3476
3510
 
3477
3511
  Style/MultilineIfModifier:
3478
3512
  Description: 'Only use if/unless modifiers on single line statements.'
@@ -3504,16 +3538,16 @@ Style/MultilineMethodSignature:
3504
3538
 
3505
3539
  Style/MultilineTernaryOperator:
3506
3540
  Description: >-
3507
- Avoid multi-line ?: (the ternary operator);
3508
- use if/unless instead.
3541
+ Avoid multi-line ?: (the ternary operator);
3542
+ use if/unless instead.
3509
3543
  StyleGuide: '#no-multiline-ternary'
3510
3544
  Enabled: true
3511
3545
  VersionAdded: '0.9'
3512
3546
 
3513
3547
  Style/MultipleComparison:
3514
3548
  Description: >-
3515
- Avoid comparing a variable with multiple items in a conditional,
3516
- use Array#include? instead.
3549
+ Avoid comparing a variable with multiple items in a conditional,
3550
+ use Array#include? instead.
3517
3551
  Enabled: true
3518
3552
  VersionAdded: '0.49'
3519
3553
 
@@ -3521,11 +3555,22 @@ Style/MutableConstant:
3521
3555
  Description: 'Do not assign mutable objects to constants.'
3522
3556
  Enabled: true
3523
3557
  VersionAdded: '0.34'
3558
+ VersionChanged: '0.65'
3559
+ EnforcedStyle: literals
3560
+ SupportedStyles:
3561
+ # literals: freeze literals assigned to constants
3562
+ # strict: freeze all constants
3563
+ # Strict mode is considered an experimental feature. It has not been updated
3564
+ # with an exhaustive list of all methods that will produce frozen objects so
3565
+ # there is a decent chance of getting some false positives. Luckily, there is
3566
+ # no harm in freezing an already frozen object.
3567
+ - literals
3568
+ - strict
3524
3569
 
3525
3570
  Style/NegatedIf:
3526
3571
  Description: >-
3527
- Favor unless over if for negative conditions
3528
- (or control flow or).
3572
+ Favor unless over if for negative conditions
3573
+ (or control flow or).
3529
3574
  StyleGuide: '#unless-for-negatives'
3530
3575
  Enabled: true
3531
3576
  VersionAdded: '0.20'
@@ -3553,8 +3598,8 @@ Style/NestedModifier:
3553
3598
 
3554
3599
  Style/NestedParenthesizedCalls:
3555
3600
  Description: >-
3556
- Parenthesize method calls which are nested inside the
3557
- argument list of another parenthesized method call.
3601
+ Parenthesize method calls which are nested inside the
3602
+ argument list of another parenthesized method call.
3558
3603
  Enabled: true
3559
3604
  VersionAdded: '0.36'
3560
3605
  VersionChanged: '0.50'
@@ -3645,8 +3690,8 @@ Style/NumericLiteralPrefix:
3645
3690
 
3646
3691
  Style/NumericLiterals:
3647
3692
  Description: >-
3648
- Add underscores to large numeric literals to improve their
3649
- readability.
3693
+ Add underscores to large numeric literals to improve their
3694
+ readability.
3650
3695
  StyleGuide: '#underscores-in-numerics'
3651
3696
  Enabled: false
3652
3697
  VersionAdded: '0.9'
@@ -3656,8 +3701,8 @@ Style/NumericLiterals:
3656
3701
 
3657
3702
  Style/NumericPredicate:
3658
3703
  Description: >-
3659
- Checks for the use of predicate- or comparison methods for
3660
- numeric comparisons.
3704
+ Checks for the use of predicate- or comparison methods for
3705
+ numeric comparisons.
3661
3706
  StyleGuide: '#predicate-methods'
3662
3707
  Safe: false
3663
3708
  # This will change to a new method call which isn't guaranteed to be on the
@@ -3680,8 +3725,8 @@ Style/NumericPredicate:
3680
3725
 
3681
3726
  Style/OneLineConditional:
3682
3727
  Description: >-
3683
- Favor the ternary operator(?:) over
3684
- if/then/else/end constructs.
3728
+ Favor the ternary operator(?:) over
3729
+ if/then/else/end constructs.
3685
3730
  StyleGuide: '#ternary-operator'
3686
3731
  Enabled: true
3687
3732
  VersionAdded: '0.9'
@@ -3702,8 +3747,8 @@ Style/OptionHash:
3702
3747
 
3703
3748
  Style/OptionalArguments:
3704
3749
  Description: >-
3705
- Checks for optional arguments that do not appear at the end
3706
- of the argument list
3750
+ Checks for optional arguments that do not appear at the end
3751
+ of the argument list
3707
3752
  StyleGuide: '#optional-arguments'
3708
3753
  Enabled: false # We want to support helpers like link_to where the link text may be the first argument or be defined by a block
3709
3754
  VersionAdded: '0.33'
@@ -3716,17 +3761,17 @@ Style/OrAssignment:
3716
3761
 
3717
3762
  Style/ParallelAssignment:
3718
3763
  Description: >-
3719
- Check for simple usages of parallel assignment.
3720
- It will only warn when the number of variables
3721
- matches on both sides of the assignment.
3764
+ Check for simple usages of parallel assignment.
3765
+ It will only warn when the number of variables
3766
+ matches on both sides of the assignment.
3722
3767
  StyleGuide: '#parallel-assignment'
3723
3768
  Enabled: true
3724
3769
  VersionAdded: '0.32'
3725
3770
 
3726
3771
  Style/ParenthesesAroundCondition:
3727
3772
  Description: >-
3728
- Don't use parentheses around the condition of an
3729
- if/unless/while.
3773
+ Don't use parentheses around the condition of an
3774
+ if/unless/while.
3730
3775
  StyleGuide: '#no-parens-around-condition'
3731
3776
  Enabled: true
3732
3777
  VersionAdded: '0.9'
@@ -3797,8 +3842,8 @@ Style/RaiseArgs:
3797
3842
 
3798
3843
  Style/RandomWithOffset:
3799
3844
  Description: >-
3800
- Prefer to use ranges when generating random numbers instead of
3801
- integers with offsets.
3845
+ Prefer to use ranges when generating random numbers instead of
3846
+ integers with offsets.
3802
3847
  StyleGuide: '#random-numbers'
3803
3848
  Enabled: true
3804
3849
  VersionAdded: '0.52'
@@ -3895,12 +3940,12 @@ Style/ReturnNil:
3895
3940
 
3896
3941
  Style/SafeNavigation:
3897
3942
  Description: >-
3898
- This cop transforms usages of a method call safeguarded by
3899
- a check for the existence of the object to
3900
- safe navigation (`&.`).
3943
+ This cop transforms usages of a method call safeguarded by
3944
+ a check for the existence of the object to
3945
+ safe navigation (`&.`).
3901
3946
  Enabled: true
3902
3947
  VersionAdded: '0.43'
3903
- VersionChanged: '0.44'
3948
+ VersionChanged: '0.56'
3904
3949
  # Safe navigation may cause a statement to start returning `nil` in addition
3905
3950
  # to whatever it used to return.
3906
3951
  ConvertCodeThatCanStartToReturnNil: false
@@ -3910,12 +3955,11 @@ Style/SafeNavigation:
3910
3955
  - presence
3911
3956
  - try
3912
3957
  - try!
3913
- VersionChanged: '0.56'
3914
3958
 
3915
3959
  Style/SelfAssignment:
3916
3960
  Description: >-
3917
- Checks for places where self-assignment shorthand should have
3918
- been used.
3961
+ Checks for places where self-assignment shorthand should have
3962
+ been used.
3919
3963
  StyleGuide: '#self-assignment'
3920
3964
  Enabled: true
3921
3965
  VersionAdded: '0.19'
@@ -4019,8 +4063,8 @@ Style/StringLiterals:
4019
4063
 
4020
4064
  Style/StringLiteralsInInterpolation:
4021
4065
  Description: >-
4022
- Checks if uses of quotes inside expressions in interpolated
4023
- strings match the configured preference.
4066
+ Checks if uses of quotes inside expressions in interpolated
4067
+ strings match the configured preference.
4024
4068
  Enabled: true
4025
4069
  VersionAdded: '0.27'
4026
4070
  EnforcedStyle: single_quotes
@@ -4068,8 +4112,9 @@ Style/SymbolLiteral:
4068
4112
  Style/SymbolProc:
4069
4113
  Description: 'Use symbols as procs instead of blocks when possible.'
4070
4114
  Enabled: false # We can't enforce this because of "Can't create Binding from C level Proc" errors, and because it messes up arity checks.
4115
+ SafeAutoCorrect: false
4071
4116
  VersionAdded: '0.26'
4072
- VersionChanged: '0.40'
4117
+ VersionChanged: '0.64'
4073
4118
  # A list of method names to be ignored by the check.
4074
4119
  # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
4075
4120
  IgnoredMethods:
@@ -4153,8 +4198,8 @@ Style/TrailingMethodEndStatement:
4153
4198
 
4154
4199
  Style/TrailingUnderscoreVariable:
4155
4200
  Description: >-
4156
- Checks for the usage of unneeded trailing underscores at the
4157
- end of parallel variable assignment.
4201
+ Checks for the usage of unneeded trailing underscores at the
4202
+ end of parallel variable assignment.
4158
4203
  AllowNamedUnderscoreVariables: true
4159
4204
  Enabled: true
4160
4205
  VersionAdded: '0.31'
@@ -4209,8 +4254,8 @@ Style/TrivialAccessors:
4209
4254
 
4210
4255
  Style/UnlessElse:
4211
4256
  Description: >-
4212
- Do not use unless with else. Rewrite these with the positive
4213
- case first.
4257
+ Do not use unless with else. Rewrite these with the positive
4258
+ case first.
4214
4259
  StyleGuide: '#no-else-with-unless'
4215
4260
  Enabled: true
4216
4261
  VersionAdded: '0.9'
@@ -4239,15 +4284,15 @@ Style/UnneededPercentQ:
4239
4284
 
4240
4285
  Style/UnpackFirst:
4241
4286
  Description: >-
4242
- Checks for accessing the first element of `String#unpack`
4243
- instead of using `unpack1`
4287
+ Checks for accessing the first element of `String#unpack`
4288
+ instead of using `unpack1`
4244
4289
  Enabled: false
4245
4290
  VersionAdded: '0.54'
4246
4291
 
4247
4292
  Style/VariableInterpolation:
4248
4293
  Description: >-
4249
- Don't interpolate global, instance and class variables
4250
- directly in strings.
4294
+ Don't interpolate global, instance and class variables
4295
+ directly in strings.
4251
4296
  StyleGuide: '#curlies-interpolate'
4252
4297
  Enabled: true
4253
4298
  VersionAdded: '0.9'
@@ -4267,8 +4312,8 @@ Style/WhileUntilDo:
4267
4312
 
4268
4313
  Style/WhileUntilModifier:
4269
4314
  Description: >-
4270
- Favor modifier while/until usage when you have a
4271
- single-line body.
4315
+ Favor modifier while/until usage when you have a
4316
+ single-line body.
4272
4317
  StyleGuide: '#while-as-a-modifier'
4273
4318
  Enabled: false
4274
4319
  VersionAdded: '0.9'
@@ -4294,17 +4339,21 @@ Style/WordArray:
4294
4339
  WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
4295
4340
 
4296
4341
  Style/YodaCondition:
4297
- Description: 'Do not use literals as the first operand of a comparison.'
4342
+ Description: 'Forbid or enforce yoda conditions.'
4298
4343
  Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions'
4299
4344
  Enabled: true
4300
- EnforcedStyle: all_comparison_operators
4345
+ EnforcedStyle: forbid_for_all_comparison_operators
4301
4346
  SupportedStyles:
4302
4347
  # check all comparison operators
4303
- - all_comparison_operators
4348
+ - forbid_for_all_comparison_operators
4304
4349
  # check only equality operators: `!=` and `==`
4305
- - equality_operators_only
4350
+ - forbid_for_equality_operators_only
4351
+ # enforce yoda for all comparison operators
4352
+ - require_for_all_comparison_operators
4353
+ # enforce yoda only for equality operators: `!=` and `==`
4354
+ - require_for_equality_operators_only
4306
4355
  VersionAdded: '0.49'
4307
- VersionChanged: '0.50'
4356
+ VersionChanged: '0.63'
4308
4357
 
4309
4358
  Style/ZeroLengthPredicate:
4310
4359
  Description: 'Use #empty? when testing for objects of length 0.'