cookstyle 6.6.9 → 6.11.4

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: 841d3e5a94709493b68818d2a726c772d442c04d0bda8a5a456ed44f84a52717
4
- data.tar.gz: 61513fcc4de0b8fc4695545352a68e371098128c7ff330f66d47fe5d194fe6cd
3
+ metadata.gz: 4593dcbd93b8d0d668e0fe5e5551147db850c38deabcccf698b3f8ea391c281d
4
+ data.tar.gz: ef4557926f01a865f3ced43e0ad7a464659f597f4f6ffc8104c2f978d959324a
5
5
  SHA512:
6
- metadata.gz: aaa21cf5132c156ca96306da44fd9e0c2601ff4e43a253f92e3b3a5f55826ef5503694987707f2683d6dd32677987996b129df7f590b95d1af004d05420dd02d
7
- data.tar.gz: 6b788999206fe69468c8458576afbc4933ce73fcb2c634399194237ad6ee57b4ab3c2c481851429bb0bb9c75c4a2bee38641a4775bcc0087206d4dc4a3495e1a
6
+ metadata.gz: e3d3b5ed0ccd193ae9aad8d8e44a03935010a841c3cf551ce070c557f2f27e93ba2ffa2082042741f481ccabb7abf68e83d958ed06e3c5751556b7f0528aa3ae
7
+ data.tar.gz: e48e47c6d27316fe8054ecc45164aedf0385be8d8e8e1077781dd3ef9948ccb756864bb6adad422941f061232f0ca0d3c6c41679166bcf345dfa29fc71f79ed3
@@ -161,6 +161,16 @@ ChefStyle/NegatingOnlyIf:
161
161
  - '**/metadata.rb'
162
162
  - '**/Berksfile'
163
163
 
164
+ ChefStyle/IncludeRecipeWithParentheses:
165
+ Description: There is no need to wrap the recipe in parentheses when using the include_recipe helper
166
+ StyleGuide: '#includerecipewithparentheses'
167
+ VersionAdded: '6.11.0'
168
+ Enabled: true
169
+ Exclude:
170
+ - '**/attributes/*.rb'
171
+ - '**/metadata.rb'
172
+ - '**/Berksfile'
173
+
164
174
  ###############################
165
175
  # ChefCorrectness: Avoiding potential problems
166
176
  ###############################
@@ -300,8 +310,9 @@ ChefCorrectness/IncorrectLibraryInjection:
300
310
  StyleGuide: '#chefcorrectnessincorrectlibraryinjection'
301
311
  Enabled: true
302
312
  VersionAdded: '5.10.0'
303
- Include:
304
- - '**/libraries/*.rb'
313
+ Exclude:
314
+ - '**/metadata.rb'
315
+ - '**/Berksfile'
305
316
 
306
317
  ChefCorrectness/InvalidPlatformHelper:
307
318
  Description: Pass valid platforms to the platform? helper.
@@ -503,6 +514,14 @@ ChefSharing/IncludeResourceDescriptions:
503
514
  Include:
504
515
  - '**/resources/*.rb'
505
516
 
517
+ ChefSharing/IncludeResourceExamples:
518
+ Description: Resources should include examples field to allow automated documention. Requires Chef Infra Client 13.9 or later.
519
+ StyleGuide: '#chefsharingincluderesourceexamples'
520
+ Enabled: false
521
+ VersionAdded: '6.10.0'
522
+ Include:
523
+ - '**/resources/*.rb'
524
+
506
525
  ###############################
507
526
  # ChefDeprecations: Resolving Deprecations that block upgrading Chef Infra Client
508
527
  ###############################
@@ -946,11 +965,12 @@ ChefDeprecations/LogResourceNotifications:
946
965
  - '**/metadata.rb'
947
966
  - '**/Berksfile'
948
967
 
949
- ChefDeprecations/ResourceWithoutNameOrProvides:
950
- Description: In Chef Infra Client 16 and later legacy HWRP resources must use either `resource_name` or `provides` to define the resource name.
968
+ ChefDeprecations/HWRPWithoutProvides:
969
+ Description: In Chef Infra Client 16 and later a legacy HWRP resource must use `provides` to define how the resource is called in recipes or other resources. To maintain compatibility with Chef Infra Client < 16 use both `resource_name` and `provides`.
951
970
  StyleGuide: '#chefdeprecationsresourcewithoutnameorprovides'
952
971
  Enabled: true
953
972
  VersionAdded: '6.0.0'
973
+ VersionChanged: '6.8.0'
954
974
  Include:
955
975
  - '**/libraries/*.rb'
956
976
 
@@ -991,6 +1011,15 @@ ChefDeprecations/Ruby27KeywordArgumentWarnings:
991
1011
  - '**/metadata.rb'
992
1012
  - '**/Berksfile'
993
1013
 
1014
+ ChefDeprecations/ResourceUsesOnlyResourceName:
1015
+ Description: Starting with Chef Infra Client 16, using `resource_name` without also using `provides` will result in resource failures. Use `provides` to change the name of the resource instead and omit `resource_name` entirely if it matches the name Chef Infra Client automatically assigns based on COOKBOOKNAME_FILENAME.
1016
+ StyleGuide: '#chefdeprecationsresourceusesonlyresourcename'
1017
+ Enabled: true
1018
+ VersionAdded: '6.7.0'
1019
+ Include:
1020
+ - '**/libraries/*.rb'
1021
+ - '**/resources/*.rb'
1022
+
994
1023
  ###############################
995
1024
  # ChefModernize: Cleaning up legacy code and using new built-in resources
996
1025
  ###############################
@@ -1115,6 +1144,7 @@ ChefModernize/IncludingMixinShelloutInResources:
1115
1144
  Include:
1116
1145
  - '**/resources/*.rb'
1117
1146
  - '**/providers/*.rb'
1147
+ - '**/libraries/*.rb'
1118
1148
 
1119
1149
  ChefModernize/UseBuildEssentialResource:
1120
1150
  Description: Use the build_essential resource instead of the legacy build-essential recipe. This resource ships in the build-essential cookbook v5.0+ and is built into Chef Infra Client 14+
@@ -1522,6 +1552,16 @@ ChefModernize/ShellOutHelper:
1522
1552
  - '**/Berksfile'
1523
1553
  - '**/libraries/*.rb'
1524
1554
 
1555
+ ChefModernize/ConditionalUsingTest:
1556
+ Description: Use ::File.exist?('/foo/bar') instead of the slower 'test -f /foo/bar' which requires shelling out.
1557
+ StyleGuide: '#conditionalusingtest'
1558
+ Enabled: true
1559
+ VersionAdded: '6.11.0'
1560
+ Exclude:
1561
+ - '**/metadata.rb'
1562
+ - '**/Berksfile'
1563
+ - '**/attributes/*.rb'
1564
+
1525
1565
  ###############################
1526
1566
  # ChefRedundantCode: Cleanup unnecessary code in your cookbooks regardless of Chef Infra Client release
1527
1567
  ###############################
@@ -1716,6 +1756,24 @@ ChefRedundantCode/UseCreateIfMissing:
1716
1756
  - '**/attributes/*.rb'
1717
1757
  - '**/Berksfile'
1718
1758
 
1759
+ ChefRedundantCode/OhaiAttributeToString:
1760
+ Description: Many Ohai node attributes are already strings and don't need to be cast to strings again
1761
+ StyleGuide: '#ohaiattributetostring'
1762
+ Enabled: true
1763
+ VersionAdded: '6.10.0'
1764
+ Exclude:
1765
+ - '**/metadata.rb'
1766
+ - '**/Berksfile'
1767
+
1768
+ ChefRedundantCode/MultiplePlatformChecks:
1769
+ Description: You can pass multiple values to the platform? and platform_family? helpers instead of calling the helpers multiple times.
1770
+ StyleGuide: '#multipleplatformchecks'
1771
+ Enabled: true
1772
+ VersionAdded: '6.10.0'
1773
+ Exclude:
1774
+ - '**/metadata.rb'
1775
+ - '**/Berksfile'
1776
+
1719
1777
  ###############################
1720
1778
  # ChefEffortless: Migrating to new patterns
1721
1779
  ###############################
@@ -1789,8 +1847,6 @@ ChefEffortless/Berksfile:
1789
1847
 
1790
1848
  Layout/AccessModifierIndentation:
1791
1849
  Enabled: true
1792
- Naming/AccessorMethodName:
1793
- Enabled: true
1794
1850
  Layout/AlignArray:
1795
1851
  Enabled: true
1796
1852
  Layout/AlignHash:
@@ -2444,3 +2500,7 @@ Style/MultilineWhenThen:
2444
2500
  # .each_key is a lot more clear that .keys.each
2445
2501
  Style/HashEachMethods:
2446
2502
  Enabled: true
2503
+
2504
+ # We want to catch this deprecation in cookbooks
2505
+ Lint/DeprecatedOpenSSLConstant:
2506
+ Enabled: true
@@ -211,10 +211,14 @@ Lint/BooleanSymbol:
211
211
  Enabled: false
212
212
  Lint/CircularArgumentReference:
213
213
  Enabled: false
214
+ Lint/ConstantResolution:
215
+ Enabled: false
214
216
  Lint/Debugger:
215
217
  Enabled: false
216
218
  Lint/DeprecatedClassMethods:
217
219
  Enabled: false
220
+ Lint/DeprecatedOpenSSLConstant:
221
+ Enabled: false
218
222
  Lint/DisjunctiveAssignmentInConstructor:
219
223
  Enabled: false
220
224
  Lint/DuplicateCaseCondition:
@@ -263,6 +267,8 @@ Lint/Loop:
263
267
  Enabled: false
264
268
  Lint/MissingCopEnableDirective:
265
269
  Enabled: false
270
+ Lint/MixedRegexpCaptureTypes:
271
+ Enabled: false
266
272
  Lint/MultipleComparison:
267
273
  Enabled: false
268
274
  Lint/NestedMethodDefinition:
@@ -415,6 +421,8 @@ Naming/VariableNumber:
415
421
  Enabled: false
416
422
  Style/AccessModifierDeclarations:
417
423
  Enabled: false
424
+ Style/AccessorGrouping:
425
+ Enabled: false
418
426
  Style/Alias:
419
427
  Enabled: false
420
428
  Style/AndOr:
@@ -431,6 +439,8 @@ Style/BarePercentLiterals:
431
439
  Enabled: false
432
440
  Style/BeginBlock:
433
441
  Enabled: false
442
+ Style/BisectedAttrAccessor:
443
+ Enabled: false
434
444
  Style/BlockComments:
435
445
  Enabled: false
436
446
  Style/BlockDelimiters:
@@ -561,6 +571,10 @@ Style/MethodCallWithoutArgsParentheses:
561
571
  Enabled: false
562
572
  Style/MethodCallWithArgsParentheses:
563
573
  Enabled: false
574
+ Style/RedundantAssignment:
575
+ Enabled: false
576
+ Style/RedundantFetchBlock:
577
+ Enabled: false
564
578
  Style/MethodCalledOnDoEndBlock:
565
579
  Enabled: false
566
580
  Style/MethodDefParentheses:
@@ -667,6 +681,10 @@ Style/RedundantParentheses:
667
681
  Enabled: false
668
682
  Style/RedundantPercentQ:
669
683
  Enabled: false
684
+ Style/RedundantRegexpCharacterClass:
685
+ Enabled: false
686
+ Style/RedundantRegexpEscape:
687
+ Enabled: false
670
688
  Style/RedundantReturn:
671
689
  Enabled: false
672
690
  Style/RedundantSelf:
@@ -153,12 +153,13 @@ Bundler/GemComment:
153
153
  Description: 'Add a comment describing each gem.'
154
154
  Enabled: false
155
155
  VersionAdded: '0.59'
156
- VersionChanged: '0.77'
156
+ VersionChanged: '0.85'
157
157
  Include:
158
158
  - '**/*.gemfile'
159
159
  - '**/Gemfile'
160
160
  - '**/gems.rb'
161
161
  IgnoredGems: []
162
+ OnlyFor: []
162
163
 
163
164
  Bundler/InsecureProtocolSource:
164
165
  Description: >-
@@ -179,6 +180,9 @@ Bundler/OrderedGems:
179
180
  VersionAdded: '0.46'
180
181
  VersionChanged: '0.47'
181
182
  TreatCommentsAsGroupSeparators: true
183
+ # By default, "-" and "_" are ignored for order purposes.
184
+ # This can be overridden by setting this parameter to true.
185
+ ConsiderPunctuation: false
182
186
  Include:
183
187
  - '**/*.gemfile'
184
188
  - '**/Gemfile'
@@ -199,6 +203,9 @@ Gemspec/OrderedDependencies:
199
203
  Enabled: true
200
204
  VersionAdded: '0.51'
201
205
  TreatCommentsAsGroupSeparators: true
206
+ # By default, "-" and "_" are ignored for order purposes.
207
+ # This can be overridden by setting this parameter to true.
208
+ ConsiderPunctuation: false
202
209
  Include:
203
210
  - '**/*.gemspec'
204
211
 
@@ -468,6 +475,13 @@ Layout/EmptyLinesAroundAttributeAccessor:
468
475
  StyleGuide: '#empty-lines-around-attribute-accessor'
469
476
  Enabled: pending
470
477
  VersionAdded: '0.83'
478
+ VersionChanged: '0.84'
479
+ AllowAliasSyntax: true
480
+ AllowedMethods:
481
+ - alias_method
482
+ - public
483
+ - protected
484
+ - private
471
485
 
472
486
  Layout/EmptyLinesAroundBeginBody:
473
487
  Description: "Keeps track of empty lines around begin-end bodies."
@@ -783,13 +797,7 @@ Layout/HeredocIndentation:
783
797
  StyleGuide: '#squiggly-heredocs'
784
798
  Enabled: true
785
799
  VersionAdded: '0.49'
786
- VersionChanged: '0.77'
787
- EnforcedStyle: squiggly
788
- SupportedStyles:
789
- - squiggly
790
- - active_support
791
- - powerpack
792
- - unindent
800
+ VersionChanged: '0.85'
793
801
 
794
802
  Layout/IndentationConsistency:
795
803
  Description: 'Keep indentation straight.'
@@ -857,13 +865,13 @@ Layout/LeadingEmptyLines:
857
865
  VersionChanged: '0.77'
858
866
 
859
867
  Layout/LineLength:
860
- Description: 'Limit lines to 80 characters.'
861
- StyleGuide: '#80-character-limits'
868
+ Description: 'Checks that line length does not exceed the configured limit.'
869
+ StyleGuide: '#max-line-length'
862
870
  Enabled: true
863
871
  VersionAdded: '0.25'
864
- VersionChanged: '0.78'
872
+ VersionChanged: '0.84'
865
873
  AutoCorrect: false
866
- Max: 80
874
+ Max: 120
867
875
  # To make it possible to copy or click on URIs in the code, we allow lines
868
876
  # containing a URI to be longer than Max.
869
877
  AllowHeredoc: true
@@ -1359,6 +1367,15 @@ Lint/CircularArgumentReference:
1359
1367
  Enabled: true
1360
1368
  VersionAdded: '0.33'
1361
1369
 
1370
+ Lint/ConstantResolution:
1371
+ Description: 'Check that constants are fully qualified with `::`.'
1372
+ Enabled: false
1373
+ VersionAdded: '0.86'
1374
+ # Restrict this cop to only looking at certain names
1375
+ Only: []
1376
+ # Restrict this cop from only looking at certain names
1377
+ Ignore: []
1378
+
1362
1379
  Lint/Debugger:
1363
1380
  Description: 'Check for debugger calls.'
1364
1381
  Enabled: true
@@ -1370,6 +1387,11 @@ Lint/DeprecatedClassMethods:
1370
1387
  Enabled: true
1371
1388
  VersionAdded: '0.19'
1372
1389
 
1390
+ Lint/DeprecatedOpenSSLConstant:
1391
+ Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
1392
+ Enabled: pending
1393
+ VersionAdded: '0.84'
1394
+
1373
1395
  Lint/DisjunctiveAssignmentInConstructor:
1374
1396
  Description: 'In constructor, plain assignment is preferred over disjunctive.'
1375
1397
  Enabled: true
@@ -1492,7 +1514,9 @@ Lint/InheritException:
1492
1514
  Lint/InterpolationCheck:
1493
1515
  Description: 'Raise warning for interpolation in single q strs.'
1494
1516
  Enabled: true
1517
+ SafeAutoCorrect: false
1495
1518
  VersionAdded: '0.50'
1519
+ VersionChanged: '0.87'
1496
1520
 
1497
1521
  Lint/LiteralAsCondition:
1498
1522
  Description: 'Checks of literals used in conditions.'
@@ -1526,6 +1550,11 @@ Lint/MissingCopEnableDirective:
1526
1550
  # .inf for any size
1527
1551
  MaximumRangeSize: .inf
1528
1552
 
1553
+ Lint/MixedRegexpCaptureTypes:
1554
+ Description: 'Do not mix named captures and numbered captures in a Regexp literal.'
1555
+ Enabled: pending
1556
+ VersionAdded: '0.85'
1557
+
1529
1558
  Lint/MultipleComparison:
1530
1559
  Description: "Use `&&` operator to compare multiple values."
1531
1560
  Enabled: true
@@ -1599,7 +1628,9 @@ Lint/RaiseException:
1599
1628
  Description: Checks for `raise` or `fail` statements which are raising `Exception` class.
1600
1629
  StyleGuide: '#raise-exception'
1601
1630
  Enabled: pending
1631
+ Safe: false
1602
1632
  VersionAdded: '0.81'
1633
+ VersionChanged: '0.86'
1603
1634
  AllowedImplicitNamespaces:
1604
1635
  - 'Gem'
1605
1636
 
@@ -1656,6 +1687,7 @@ Lint/RegexpAsCondition:
1656
1687
  The regexp literal matches `$_` implicitly.
1657
1688
  Enabled: true
1658
1689
  VersionAdded: '0.51'
1690
+ VersionChanged: '0.86'
1659
1691
 
1660
1692
  Lint/RequireParentheses:
1661
1693
  Description: >-
@@ -1712,6 +1744,7 @@ Lint/SafeNavigationWithEmpty:
1712
1744
  Description: 'Avoid `foo&.empty?` in conditionals.'
1713
1745
  Enabled: true
1714
1746
  VersionAdded: '0.62'
1747
+ VersionChanged: '0.87'
1715
1748
 
1716
1749
  Lint/ScriptPermission:
1717
1750
  Description: 'Grant script file execute permission.'
@@ -1878,9 +1911,10 @@ Metrics/BlockLength:
1878
1911
  Description: 'Avoid long blocks with many lines.'
1879
1912
  Enabled: true
1880
1913
  VersionAdded: '0.44'
1881
- VersionChanged: '0.66'
1914
+ VersionChanged: '0.87'
1882
1915
  CountComments: false # count full line comments?
1883
1916
  Max: 25
1917
+ CountAsOne: []
1884
1918
  ExcludedMethods:
1885
1919
  # By default, exclude the `#refine` method, as it tends to have larger
1886
1920
  # associated blocks.
@@ -1901,8 +1935,10 @@ Metrics/ClassLength:
1901
1935
  Description: 'Avoid classes longer than 100 lines of code.'
1902
1936
  Enabled: true
1903
1937
  VersionAdded: '0.25'
1938
+ VersionChanged: '0.87'
1904
1939
  CountComments: false # count full line comments?
1905
1940
  Max: 100
1941
+ CountAsOne: []
1906
1942
 
1907
1943
  # Avoid complex methods.
1908
1944
  Metrics/CyclomaticComplexity:
@@ -1913,24 +1949,27 @@ Metrics/CyclomaticComplexity:
1913
1949
  VersionAdded: '0.25'
1914
1950
  VersionChanged: '0.81'
1915
1951
  IgnoredMethods: []
1916
- Max: 6
1952
+ Max: 7
1917
1953
 
1918
1954
  Metrics/MethodLength:
1919
1955
  Description: 'Avoid methods longer than 10 lines of code.'
1920
1956
  StyleGuide: '#short-methods'
1921
1957
  Enabled: true
1922
1958
  VersionAdded: '0.25'
1923
- VersionChanged: '0.59.2'
1959
+ VersionChanged: '0.87'
1924
1960
  CountComments: false # count full line comments?
1925
1961
  Max: 10
1962
+ CountAsOne: []
1926
1963
  ExcludedMethods: []
1927
1964
 
1928
1965
  Metrics/ModuleLength:
1929
1966
  Description: 'Avoid modules longer than 100 lines of code.'
1930
1967
  Enabled: true
1931
1968
  VersionAdded: '0.31'
1969
+ VersionChanged: '0.87'
1932
1970
  CountComments: false # count full line comments?
1933
1971
  Max: 100
1972
+ CountAsOne: []
1934
1973
 
1935
1974
  Metrics/ParameterLists:
1936
1975
  Description: 'Avoid parameter lists longer than three or four parameters.'
@@ -1968,10 +2007,12 @@ Naming/AccessorMethodName:
1968
2007
  VersionAdded: '0.50'
1969
2008
 
1970
2009
  Naming/AsciiIdentifiers:
1971
- Description: 'Use only ascii symbols in identifiers.'
2010
+ Description: 'Use only ascii symbols in identifiers and constants.'
1972
2011
  StyleGuide: '#english-identifiers'
1973
2012
  Enabled: true
1974
2013
  VersionAdded: '0.50'
2014
+ VersionChanged: '0.87'
2015
+ AsciiConstants: true
1975
2016
 
1976
2017
  Naming/BinaryOperatorParameterName:
1977
2018
  Description: 'When defining binary operators, name the argument other.'
@@ -1999,6 +2040,11 @@ Naming/ClassAndModuleCamelCase:
1999
2040
  StyleGuide: '#camelcase-classes'
2000
2041
  Enabled: true
2001
2042
  VersionAdded: '0.50'
2043
+ VersionChanged: '0.85'
2044
+ # Allowed class/module names can be specified here.
2045
+ # These can be full or part of the name.
2046
+ AllowedNames:
2047
+ - module_parent
2002
2048
 
2003
2049
  Naming/ConstantName:
2004
2050
  Description: 'Constants should use SCREAMING_SNAKE_CASE.'
@@ -2019,6 +2065,10 @@ Naming/FileName:
2019
2065
  # It further expects it to be nested inside modules which match the names
2020
2066
  # of subdirectories in its path.
2021
2067
  ExpectMatchingDefinition: false
2068
+ # When `false`, changes the behavior of ExpectMatchingDefinition to match only
2069
+ # whether each source file's class or module name matches the file name --
2070
+ # not whether the nested module hierarchy matches the subdirectory path.
2071
+ CheckDefinitionPathHierarchy: true
2022
2072
  # If non-`nil`, expect all source file names to match the following regex.
2023
2073
  # Only the file name itself is matched, not the entire file path.
2024
2074
  # Use anchors as necessary if you want to match the entire name rather than
@@ -2210,7 +2260,7 @@ Security/JSONLoad:
2210
2260
  Description: >-
2211
2261
  Prefer usage of `JSON.parse` over `JSON.load` due to potential
2212
2262
  security issues. See reference for more information.
2213
- Reference: 'https://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load'
2263
+ Reference: 'https://ruby-doc.org/stdlib-2.7.0/libdoc/json/rdoc/JSON.html#method-i-load'
2214
2264
  Enabled: true
2215
2265
  VersionAdded: '0.43'
2216
2266
  VersionChanged: '0.44'
@@ -2223,7 +2273,7 @@ Security/MarshalLoad:
2223
2273
  Description: >-
2224
2274
  Avoid using of `Marshal.load` or `Marshal.restore` due to potential
2225
2275
  security issues. See reference for more information.
2226
- Reference: 'https://ruby-doc.org/core-2.3.3/Marshal.html#module-Marshal-label-Security+considerations'
2276
+ Reference: 'https://ruby-doc.org/core-2.7.0/Marshal.html#module-Marshal-label-Security+considerations'
2227
2277
  Enabled: true
2228
2278
  VersionAdded: '0.47'
2229
2279
 
@@ -2237,7 +2287,7 @@ Security/YAMLLoad:
2237
2287
  Description: >-
2238
2288
  Prefer usage of `YAML.safe_load` over `YAML.load` due to potential
2239
2289
  security issues. See reference for more information.
2240
- Reference: 'https://ruby-doc.org/stdlib-2.3.3/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
2290
+ Reference: 'https://ruby-doc.org/stdlib-2.7.0/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security'
2241
2291
  Enabled: true
2242
2292
  VersionAdded: '0.47'
2243
2293
  SafeAutoCorrect: false
@@ -2255,6 +2305,17 @@ Style/AccessModifierDeclarations:
2255
2305
  - group
2256
2306
  AllowModifiersOnSymbols: true
2257
2307
 
2308
+ Style/AccessorGrouping:
2309
+ Description: 'Checks for grouping of accessors in `class` and `module` bodies.'
2310
+ Enabled: 'pending'
2311
+ VersionAdded: '0.87'
2312
+ EnforcedStyle: grouped
2313
+ SupportedStyles:
2314
+ # separated: each accessor goes in a separate statement.
2315
+ # grouped: accessors are grouped into a single statement.
2316
+ - separated
2317
+ - grouped
2318
+
2258
2319
  Style/Alias:
2259
2320
  Description: 'Use alias instead of alias_method.'
2260
2321
  StyleGuide: '#alias-method-lexically'
@@ -2274,7 +2335,7 @@ Style/AndOr:
2274
2335
  VersionChanged: '0.25'
2275
2336
  # Whether `and` and `or` are banned only in conditionals (conditionals)
2276
2337
  # or completely (always).
2277
- EnforcedStyle: always
2338
+ EnforcedStyle: conditionals
2278
2339
  SupportedStyles:
2279
2340
  - always
2280
2341
  - conditionals
@@ -2322,6 +2383,13 @@ Style/BeginBlock:
2322
2383
  Enabled: true
2323
2384
  VersionAdded: '0.9'
2324
2385
 
2386
+ Style/BisectedAttrAccessor:
2387
+ Description: >-
2388
+ Checks for places where `attr_reader` and `attr_writer`
2389
+ for the same method can be combined into single `attr_accessor`.
2390
+ Enabled: 'pending'
2391
+ VersionAdded: '0.87'
2392
+
2325
2393
  Style/BlockComments:
2326
2394
  Description: 'Do not use block comments.'
2327
2395
  StyleGuide: '#no-block-comments'
@@ -2694,6 +2762,12 @@ Style/DoubleNegation:
2694
2762
  StyleGuide: '#no-bang-bang'
2695
2763
  Enabled: true
2696
2764
  VersionAdded: '0.19'
2765
+ VersionChanged: '0.84'
2766
+ EnforcedStyle: allowed_in_returns
2767
+ SafeAutoCorrect: false
2768
+ SupportedStyles:
2769
+ - allowed_in_returns
2770
+ - forbidden
2697
2771
 
2698
2772
  Style/EachForSimpleLoop:
2699
2773
  Description: >-
@@ -2857,8 +2931,7 @@ Style/FrozenStringLiteralComment:
2857
2931
  SupportedStyles:
2858
2932
  # `always` will always add the frozen string literal comment to a file
2859
2933
  # regardless of the Ruby version or if `freeze` or `<<` are called on a
2860
- # string literal. If you run code against multiple versions of Ruby, it is
2861
- # possible that this will create errors in Ruby 2.3.0+.
2934
+ # string literal. It is possible that this will create errors.
2862
2935
  - always
2863
2936
  # `always_true` will add the frozen string literal comment to a file,
2864
2937
  # similarly to the `always` style, but will also change any disabled
@@ -2958,6 +3031,7 @@ Style/IfUnlessModifierOfIfUnless:
2958
3031
  Avoid modifier if/unless usage on conditionals.
2959
3032
  Enabled: true
2960
3033
  VersionAdded: '0.39'
3034
+ VersionChanged: '0.87'
2961
3035
 
2962
3036
  Style/IfWithSemicolon:
2963
3037
  Description: 'Do not use if x; .... Use the ternary operator instead.'
@@ -3214,6 +3288,7 @@ Style/MultilineTernaryOperator:
3214
3288
  StyleGuide: '#no-multiline-ternary'
3215
3289
  Enabled: true
3216
3290
  VersionAdded: '0.9'
3291
+ VersionChanged: '0.86'
3217
3292
 
3218
3293
  Style/MultilineWhenThen:
3219
3294
  Description: 'Do not use then for multi-line when statement.'
@@ -3318,6 +3393,7 @@ Style/NestedTernaryOperator:
3318
3393
  StyleGuide: '#no-nested-ternary'
3319
3394
  Enabled: true
3320
3395
  VersionAdded: '0.9'
3396
+ VersionChanged: '0.86'
3321
3397
 
3322
3398
  Style/Next:
3323
3399
  Description: 'Use `next` to skip iteration instead of a condition at the end.'
@@ -3542,6 +3618,11 @@ Style/RandomWithOffset:
3542
3618
  Enabled: true
3543
3619
  VersionAdded: '0.52'
3544
3620
 
3621
+ Style/RedundantAssignment:
3622
+ Description: 'Checks for redundant assignment before returning.'
3623
+ Enabled: 'pending'
3624
+ VersionAdded: '0.87'
3625
+
3545
3626
  Style/RedundantBegin:
3546
3627
  Description: "Don't use begin blocks when they are not needed."
3547
3628
  StyleGuide: '#begin-implicit'
@@ -3571,6 +3652,19 @@ Style/RedundantException:
3571
3652
  VersionAdded: '0.14'
3572
3653
  VersionChanged: '0.29'
3573
3654
 
3655
+ Style/RedundantFetchBlock:
3656
+ Description: >-
3657
+ Use `fetch(key, value)` instead of `fetch(key) { value }`
3658
+ when value has Numeric, Rational, Complex, Symbol or String type, `false`, `true`, `nil` or is a constant.
3659
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#hashfetch-with-argument-vs-hashfetch--block-code'
3660
+ Enabled: 'pending'
3661
+ Safe: false
3662
+ # If enabled, this cop will autocorrect usages of
3663
+ # `fetch` being called with block returning a constant.
3664
+ # This can be dangerous since constants will not be defined at that moment.
3665
+ SafeForConstants: false
3666
+ VersionAdded: '0.86'
3667
+
3574
3668
  Style/RedundantFreeze:
3575
3669
  Description: "Checks usages of Object#freeze on immutable objects."
3576
3670
  Enabled: true
@@ -3593,6 +3687,16 @@ Style/RedundantPercentQ:
3593
3687
  Enabled: true
3594
3688
  VersionAdded: '0.76'
3595
3689
 
3690
+ Style/RedundantRegexpCharacterClass:
3691
+ Description: 'Checks for unnecessary single-element Regexp character classes.'
3692
+ Enabled: pending
3693
+ VersionAdded: '0.85'
3694
+
3695
+ Style/RedundantRegexpEscape:
3696
+ Description: 'Checks for redundant escapes in Regexps.'
3697
+ Enabled: pending
3698
+ VersionAdded: '0.85'
3699
+
3596
3700
  Style/RedundantReturn:
3597
3701
  Description: "Don't use return where it's not required."
3598
3702
  StyleGuide: '#no-explicit-return'
@@ -3840,6 +3944,7 @@ Style/StructInheritance:
3840
3944
  StyleGuide: '#no-extend-struct-new'
3841
3945
  Enabled: true
3842
3946
  VersionAdded: '0.29'
3947
+ VersionChanged: '0.86'
3843
3948
 
3844
3949
  Style/SymbolArray:
3845
3950
  Description: 'Use %i or %I for arrays of symbols.'
@@ -3861,7 +3966,7 @@ Style/SymbolLiteral:
3861
3966
  Style/SymbolProc:
3862
3967
  Description: 'Use symbols as procs instead of blocks when possible.'
3863
3968
  Enabled: true
3864
- SafeAutoCorrect: false
3969
+ Safe: false
3865
3970
  VersionAdded: '0.26'
3866
3971
  VersionChanged: '0.64'
3867
3972
  # A list of method names to be ignored by the check.