makandra-rubocop 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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.'