cookstyle 7.3.11 → 7.6.1

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: eb3a7e36c658c852bc788ee0f1ee9c0f0d4950be89d0ef6b0c499ea4efd4abcb
4
- data.tar.gz: cc49327d8000de38e72bc06288b589aac453bfea9053b6754a30d1a04c5b85fb
3
+ metadata.gz: 94c65d786aaf2a303f8bdc1d56aa5e486d54149362ecd24cd502e0bbacbe2ded
4
+ data.tar.gz: 713071ed03eb0a3095ff8fe4e0205deaa3cb51230717661a276c3e7b9593b3fe
5
5
  SHA512:
6
- metadata.gz: babafe578701a7478598faee40918bd3c7b0afe81068794faa9eae3be56eecaa97c0a8e0dc7e5eb232db307e567f91c1570ef969ea5b2eb157b8029ec6b41783
7
- data.tar.gz: 2ad51cd32ec595555379194e579a07f3a6bf0502710fd161c6fa201fe5938f987cc301db45fc59704407a7dbb665d40b5d59ef84638f382904fc7ca99e691ffa
6
+ metadata.gz: b46edc9f54e8233b750ca4ad575184bb65e134398b7c5fb5ac58e0c2e3b2c69679a53e13efb9f4ca282d26f31ae5bf6a711567fa5c4c6e8d5e3549cc623c3f99
7
+ data.tar.gz: c2cd89d013da57b588b75ccaccc8331fc2c13122992f586a0672d4fdbdcb0b34968144366ac04c7556bd4b861af684f566f9fd391b4b3a5e005bee0789d605ca
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gemspec
7
7
  group :debug do
8
8
  gem 'pry'
9
9
  gem 'pry-byebug'
10
- gem 'pry-stack_explorer', '~> 0.4.0' # 0.5.0 drops support for Ruby < 2.6
10
+ gem 'pry-stack_explorer', '< 0.4.13' # 0.4.13+ drops support for Ruby < 2.6
11
11
  end
12
12
 
13
13
  group :docs do
@@ -26,4 +26,4 @@ end
26
26
  group :development do
27
27
  gem 'rake'
28
28
  gem 'rspec', '>= 3.4'
29
- end
29
+ end
@@ -2324,7 +2324,7 @@ Style/SymbolLiteral:
2324
2324
  Enabled: true
2325
2325
  Layout/IndentationStyle:
2326
2326
  Enabled: true
2327
- Layout/TrailingBlankLines:
2327
+ Layout/TrailingEmptyLines:
2328
2328
  Enabled: true
2329
2329
  Style/TrailingCommaInArguments:
2330
2330
  Enabled: true
@@ -2803,3 +2803,7 @@ Lint/RedundantSafeNavigation:
2803
2803
  # Avoid using blocks to remove nils from a Hash/Array
2804
2804
  Style/CollectionCompact:
2805
2805
  Enabled: true
2806
+
2807
+ # eventually these constants are going to break code so fix them
2808
+ Lint/DeprecatedConstants:
2809
+ Enabled: true
@@ -169,6 +169,8 @@ Layout/SpaceAroundOperators:
169
169
  Enabled: false
170
170
  Layout/SpaceBeforeBlockBraces:
171
171
  Enabled: false
172
+ Layout/SpaceBeforeBrackets:
173
+ Enabled: false
172
174
  Layout/SpaceBeforeComma:
173
175
  Enabled: false
174
176
  Layout/SpaceBeforeComment:
@@ -201,6 +203,8 @@ Layout/TrailingEmptyLines:
201
203
  Enabled: false
202
204
  Layout/TrailingWhitespace:
203
205
  Enabled: false
206
+ Lint/AmbiguousAssignment:
207
+ Enabled: false
204
208
  Lint/AmbiguousBlockAssociation:
205
209
  Enabled: false
206
210
  Lint/AmbiguousOperator:
@@ -225,6 +229,8 @@ Lint/Debugger:
225
229
  Enabled: false
226
230
  Lint/DeprecatedClassMethods:
227
231
  Enabled: false
232
+ Lint/DeprecatedConstants:
233
+ Enabled: false
228
234
  Lint/DeprecatedOpenSSLConstant:
229
235
  Enabled: false
230
236
  Lint/DisjunctiveAssignmentInConstructor:
@@ -291,6 +297,8 @@ Lint/IneffectiveAccessModifier:
291
297
  Enabled: false
292
298
  Lint/InterpolationCheck:
293
299
  Enabled: false
300
+ Lint/LambdaWithoutLiteralBlock:
301
+ Enabled: false
294
302
  Lint/LiteralAsCondition:
295
303
  Enabled: false
296
304
  Lint/LiteralInInterpolation:
@@ -319,6 +327,10 @@ Lint/NonLocalExitFromIterator:
319
327
  Enabled: false
320
328
  Lint/NumberConversion:
321
329
  Enabled: false
330
+ Lint/NumberedParameterAssignment:
331
+ Enabled: false
332
+ Lint/OrAssignmentToConstant:
333
+ Enabled: false
322
334
  Lint/OrderedMagicComments:
323
335
  Enabled: false
324
336
  Lint/OutOfRangeRegexpRef:
@@ -337,6 +349,8 @@ Lint/RedundantCopDisableDirective:
337
349
  Enabled: false
338
350
  Lint/RedundantCopEnableDirective:
339
351
  Enabled: false
352
+ Lint/RedundantDirGlobSort:
353
+ Enabled: false
340
354
  Lint/RedundantRequireStatement:
341
355
  Enabled: false
342
356
  Lint/RedundantSafeNavigation:
@@ -381,6 +395,8 @@ Lint/StructNewOverride:
381
395
  Enabled: false
382
396
  Lint/SuppressedException:
383
397
  Enabled: false
398
+ Lint/SymbolConversion:
399
+ Enabled: false
384
400
  Lint/Syntax:
385
401
  Enabled: false
386
402
  Lint/ToEnumArguments:
@@ -391,6 +407,8 @@ Lint/TopLevelReturnWithArgument:
391
407
  Enabled: false
392
408
  Lint/TrailingCommaInAttributeDeclaration:
393
409
  Enabled: false
410
+ Lint/TripleQuotes:
411
+ Enabled: false
394
412
  Lint/UnderscorePrefixedVariableName:
395
413
  Enabled: false
396
414
  Lint/UnexpectedBlockArity:
@@ -579,6 +597,8 @@ Style/EmptyLiteral:
579
597
  Enabled: false
580
598
  Style/EmptyMethod:
581
599
  Enabled: false
600
+ Style/EndlessMethod:
601
+ Enabled: false
582
602
  Style/Encoding:
583
603
  Enabled: false
584
604
  Style/EndBlock:
@@ -613,6 +633,8 @@ Style/HashAsLastArrayItem:
613
633
  Enabled: false
614
634
  Style/HashEachMethods:
615
635
  Enabled: false
636
+ Style/HashExcept:
637
+ Enabled: false
616
638
  Style/HashLikeCase:
617
639
  Enabled: false
618
640
  Style/HashSyntax:
@@ -629,6 +651,8 @@ Style/IfUnlessModifier:
629
651
  Enabled: false
630
652
  Style/IfUnlessModifierOfIfUnless:
631
653
  Enabled: false
654
+ Style/IfWithBooleanLiteralBranches:
655
+ Enabled: false
632
656
  Style/IfWithSemicolon:
633
657
  Enabled: false
634
658
  Style/ImplicitRuntimeError:
@@ -132,12 +132,13 @@ AllCops:
132
132
  # If a value is specified for TargetRubyVersion then it is used. Acceptable
133
133
  # values are specificed as a float (i.e. 2.5); the teeny version of Ruby
134
134
  # should not be included. If the project specifies a Ruby version in the
135
- # .ruby-version file, Gemfile or gems.rb file, RuboCop will try to determine
136
- # the desired version of Ruby by inspecting the .ruby-version file first,
137
- # followed by the Gemfile.lock or gems.locked file. (Although the Ruby version
138
- # is specified in the Gemfile or gems.rb file, RuboCop reads the final value
139
- # from the lock file.) If the Ruby version is still unresolved, RuboCop will
140
- # use the oldest officially supported Ruby version (currently Ruby 2.4).
135
+ # .tool-versions or .ruby-version files, Gemfile or gems.rb file, RuboCop will
136
+ # try to determine the desired version of Ruby by inspecting the
137
+ # .tool-versions file first, then .ruby-version, followed by the Gemfile.lock
138
+ # or gems.locked file. (Although the Ruby version is specified in the Gemfile
139
+ # or gems.rb file, RuboCop reads the final value from the lock file.) If the
140
+ # Ruby version is still unresolved, RuboCop will use the oldest officially
141
+ # supported Ruby version (currently Ruby 2.4).
141
142
  TargetRubyVersion: ~
142
143
  # Determines if a notification for extension libraries should be shown when
143
144
  # rubocop is run. Keys are the name of the extension, and values are an array
@@ -473,7 +474,7 @@ Layout/EmptyLineBetweenDefs:
473
474
  StyleGuide: '#empty-lines-between-methods'
474
475
  Enabled: true
475
476
  VersionAdded: '0.49'
476
- VersionChanged: '1.4'
477
+ VersionChanged: '1.7'
477
478
  EmptyLineBetweenMethodDefs: true
478
479
  EmptyLineBetweenClassDefs: true
479
480
  EmptyLineBetweenModuleDefs: true
@@ -1192,6 +1193,12 @@ Layout/SpaceBeforeBlockBraces:
1192
1193
  - no_space
1193
1194
  VersionChanged: '0.52'
1194
1195
 
1196
+ Layout/SpaceBeforeBrackets:
1197
+ Description: 'Checks for receiver with a space before the opening brackets.'
1198
+ StyleGuide: '#space-in-brackets-access'
1199
+ Enabled: pending
1200
+ VersionAdded: '1.7'
1201
+
1195
1202
  Layout/SpaceBeforeComma:
1196
1203
  Description: 'No spaces before commas.'
1197
1204
  Enabled: true
@@ -1354,6 +1361,11 @@ Layout/TrailingWhitespace:
1354
1361
  #################### Lint ##################################
1355
1362
  ### Warnings
1356
1363
 
1364
+ Lint/AmbiguousAssignment:
1365
+ Description: 'Checks for mistyped shorthand assignments.'
1366
+ Enabled: pending
1367
+ VersionAdded: '1.7'
1368
+
1357
1369
  Lint/AmbiguousBlockAssociation:
1358
1370
  Description: >-
1359
1371
  Checks for ambiguous block association with method when param passed without
@@ -1396,6 +1408,7 @@ Lint/BinaryOperatorWithIdenticalOperands:
1396
1408
  Enabled: true
1397
1409
  Safe: false
1398
1410
  VersionAdded: '0.89'
1411
+ VersionChanged: '1.7'
1399
1412
 
1400
1413
  Lint/BooleanSymbol:
1401
1414
  Description: 'Check for `:true` and `:false` symbols.'
@@ -1456,6 +1469,34 @@ Lint/DeprecatedClassMethods:
1456
1469
  Enabled: true
1457
1470
  VersionAdded: '0.19'
1458
1471
 
1472
+ Lint/DeprecatedConstants:
1473
+ Description: 'Checks for deprecated constants.'
1474
+ Enabled: pending
1475
+ VersionAdded: '1.8'
1476
+ # You can configure deprecated constants.
1477
+ # If there is an alternative method, you can set alternative value as `Alternative`.
1478
+ # And you can set the deprecated version as `DeprecatedVersion`.
1479
+ # These options can be omitted if they are not needed.
1480
+ #
1481
+ # DeprecatedConstants:
1482
+ # 'DEPRECATED_CONSTANT':
1483
+ # Alternative: 'alternative_value'
1484
+ # DeprecatedVersion: 'deprecated_version'
1485
+ #
1486
+ DeprecatedConstants:
1487
+ 'NIL':
1488
+ Alternative: 'nil'
1489
+ DeprecatedVersion: '2.4'
1490
+ 'TRUE':
1491
+ Alternative: 'true'
1492
+ DeprecatedVersion: '2.4'
1493
+ 'FALSE':
1494
+ Alternative: 'false'
1495
+ DeprecatedVersion: '2.4'
1496
+ 'Random::DEFAULT':
1497
+ Alternative: 'Random.new'
1498
+ DeprecatedVersion: '3.0'
1499
+
1459
1500
  Lint/DeprecatedOpenSSLConstant:
1460
1501
  Description: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`."
1461
1502
  Enabled: true
@@ -1472,6 +1513,9 @@ Lint/DuplicateBranch:
1472
1513
  Description: Checks that there are no repeated bodies within `if/unless`, `case-when` and `rescue` constructs.
1473
1514
  Enabled: pending
1474
1515
  VersionAdded: '1.3'
1516
+ VersionChanged: '1.7'
1517
+ IgnoreLiteralBranches: false
1518
+ IgnoreConstantBranches: false
1475
1519
 
1476
1520
  Lint/DuplicateCaseCondition:
1477
1521
  Description: 'Do not repeat values in case conditionals.'
@@ -1658,6 +1702,11 @@ Lint/InterpolationCheck:
1658
1702
  VersionAdded: '0.50'
1659
1703
  VersionChanged: '0.87'
1660
1704
 
1705
+ Lint/LambdaWithoutLiteralBlock:
1706
+ Description: 'Checks uses of lambda without a literal block.'
1707
+ Enabled: pending
1708
+ VersionAdded: '1.8'
1709
+
1661
1710
  Lint/LiteralAsCondition:
1662
1711
  Description: 'Checks of literals used in conditions.'
1663
1712
  Enabled: true
@@ -1757,6 +1806,17 @@ Lint/NumberConversion:
1757
1806
  - Time
1758
1807
  - DateTime
1759
1808
 
1809
+ Lint/NumberedParameterAssignment:
1810
+ Description: 'Checks for uses of numbered parameter assignment.'
1811
+ Enabled: pending
1812
+ VersionAdded: '1.9'
1813
+
1814
+ Lint/OrAssignmentToConstant:
1815
+ Description: 'Checks unintended or-assignment to constant.'
1816
+ Enabled: pending
1817
+ Safe: false
1818
+ VersionAdded: '1.9'
1819
+
1760
1820
  Lint/OrderedMagicComments:
1761
1821
  Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.'
1762
1822
  Enabled: true
@@ -1820,6 +1880,11 @@ Lint/RedundantCopEnableDirective:
1820
1880
  Enabled: true
1821
1881
  VersionAdded: '0.76'
1822
1882
 
1883
+ Lint/RedundantDirGlobSort:
1884
+ Description: 'Checks for redundant `sort` method to `Dir.glob` and `Dir[]`.'
1885
+ Enabled: pending
1886
+ VersionAdded: '1.8'
1887
+
1823
1888
  Lint/RedundantRequireStatement:
1824
1889
  Description: 'Checks for unnecessary `require` statement.'
1825
1890
  Enabled: true
@@ -1842,6 +1907,8 @@ Lint/RedundantSplatExpansion:
1842
1907
  Description: 'Checks for splat unnecessarily being called on literals.'
1843
1908
  Enabled: true
1844
1909
  VersionAdded: '0.76'
1910
+ VersionChanged: '1.7'
1911
+ AllowPercentLiteralArrayArgument: true
1845
1912
 
1846
1913
  Lint/RedundantStringCoercion:
1847
1914
  Description: 'Checks for Object#to_s usage in string interpolation.'
@@ -1976,12 +2043,16 @@ Lint/SuppressedException:
1976
2043
  VersionAdded: '0.9'
1977
2044
  VersionChanged: '0.81'
1978
2045
 
2046
+ Lint/SymbolConversion:
2047
+ Description: 'Checks for unnecessary symbol conversions.'
2048
+ Enabled: pending
2049
+ VersionAdded: '1.9'
2050
+
1979
2051
  Lint/Syntax:
1980
- Description: 'Checks syntax error.'
2052
+ Description: 'Checks for syntax errors.'
1981
2053
  Enabled: true
1982
2054
  VersionAdded: '0.9'
1983
2055
 
1984
-
1985
2056
  Lint/ToEnumArguments:
1986
2057
  Description: 'This cop ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.'
1987
2058
  Enabled: pending
@@ -2002,6 +2073,11 @@ Lint/TrailingCommaInAttributeDeclaration:
2002
2073
  Enabled: true
2003
2074
  VersionAdded: '0.90'
2004
2075
 
2076
+ Lint/TripleQuotes:
2077
+ Description: 'Checks for useless triple quote constructs.'
2078
+ Enabled: pending
2079
+ VersionAdded: '1.9'
2080
+
2005
2081
  Lint/UnderscorePrefixedVariableName:
2006
2082
  Description: 'Do not use prefix `_` for a variable that is used.'
2007
2083
  Enabled: true
@@ -2045,6 +2121,11 @@ Lint/UnreachableLoop:
2045
2121
  Description: 'This cop checks for loops that will have at most one iteration.'
2046
2122
  Enabled: true
2047
2123
  VersionAdded: '0.89'
2124
+ VersionChanged: '1.7'
2125
+ IgnoredPatterns:
2126
+ # RSpec uses `times` in its message expectations
2127
+ # eg. `exactly(2).times`
2128
+ - !ruby/regexp /(exactly|at_least|at_most)\(\d+\)\.times/
2048
2129
 
2049
2130
  Lint/UnusedBlockArgument:
2050
2131
  Description: 'Checks for unused block arguments.'
@@ -2479,10 +2560,12 @@ Naming/VariableName:
2479
2560
  StyleGuide: '#snake-case-symbols-methods-vars'
2480
2561
  Enabled: true
2481
2562
  VersionAdded: '0.50'
2563
+ VersionChanged: '1.8'
2482
2564
  EnforcedStyle: snake_case
2483
2565
  SupportedStyles:
2484
2566
  - snake_case
2485
2567
  - camelCase
2568
+ AllowedIdentifiers: []
2486
2569
 
2487
2570
  Naming/VariableNumber:
2488
2571
  Description: 'Use the configured style when numbering symbols, methods and variables.'
@@ -2626,7 +2709,8 @@ Style/AsciiComments:
2626
2709
  Enabled: true
2627
2710
  VersionAdded: '0.9'
2628
2711
  VersionChanged: '0.52'
2629
- AllowedChars: []
2712
+ AllowedChars:
2713
+ - ©
2630
2714
 
2631
2715
  Style/Attr:
2632
2716
  Description: 'Checks for uses of Module#attr.'
@@ -2895,7 +2979,7 @@ Style/CollectionMethods:
2895
2979
  StyleGuide: '#map-find-select-reduce-include-size'
2896
2980
  Enabled: false
2897
2981
  VersionAdded: '0.9'
2898
- VersionChanged: '0.27'
2982
+ VersionChanged: '1.7'
2899
2983
  Safe: false
2900
2984
  # Mapping from undesired method to desired method
2901
2985
  # e.g. to use `detect` over `find`:
@@ -2910,6 +2994,11 @@ Style/CollectionMethods:
2910
2994
  detect: 'find'
2911
2995
  find_all: 'select'
2912
2996
  member?: 'include?'
2997
+ # Methods in this array accept a final symbol as an implicit block
2998
+ # eg. `inject(:+)`
2999
+ MethodsAcceptingSymbol:
3000
+ - inject
3001
+ - reduce
2913
3002
 
2914
3003
  Style/ColonMethodCall:
2915
3004
  Description: 'Do not use :: for method call.'
@@ -2969,6 +3058,7 @@ Style/CommentedKeyword:
2969
3058
  Description: 'Do not place comments on the same line as certain keywords.'
2970
3059
  Enabled: true
2971
3060
  VersionAdded: '0.51'
3061
+ VersionChanged: '1.7'
2972
3062
 
2973
3063
  Style/ConditionalAssignment:
2974
3064
  Description: >-
@@ -3051,6 +3141,8 @@ Style/DisableCopsWithinSourceCodeDirective:
3051
3141
  Forbids disabling/enabling cops within source code.
3052
3142
  Enabled: false
3053
3143
  VersionAdded: '0.82'
3144
+ VersionChanged: '1.9'
3145
+ AllowedCops: []
3054
3146
 
3055
3147
  Style/DocumentDynamicEvalDefinition:
3056
3148
  Description: >-
@@ -3168,6 +3260,17 @@ Style/EndBlock:
3168
3260
  VersionAdded: '0.9'
3169
3261
  VersionChanged: '0.81'
3170
3262
 
3263
+ Style/EndlessMethod:
3264
+ Description: 'Avoid the use of multi-lined endless method definitions.'
3265
+ StyleGuide: '#endless-methods'
3266
+ Enabled: pending
3267
+ VersionAdded: '1.8'
3268
+ EnforcedStyle: allow_single_line
3269
+ SupportedStyles:
3270
+ - allow_single_line
3271
+ - allow_always
3272
+ - disallow
3273
+
3171
3274
  Style/EvalWithLocation:
3172
3275
  Description: 'Pass `__FILE__` and `__LINE__` to `eval` method, as they are used by backtraces.'
3173
3276
  Enabled: true
@@ -3191,9 +3294,8 @@ Style/ExplicitBlockArgument:
3191
3294
  that just passes its arguments to another block.
3192
3295
  StyleGuide: '#block-argument'
3193
3296
  Enabled: true
3194
- # May change the yielding arity.
3195
- Safe: false
3196
3297
  VersionAdded: '0.89'
3298
+ VersionChanged: '1.8'
3197
3299
 
3198
3300
  Style/ExponentialNotation:
3199
3301
  Description: 'When using exponential notation, favor a mantissa between 1 (inclusive) and 10 (exclusive).'
@@ -3209,9 +3311,11 @@ Style/ExponentialNotation:
3209
3311
  Style/FloatDivision:
3210
3312
  Description: 'For performing float division, coerce one side only.'
3211
3313
  StyleGuide: '#float-division'
3212
- Reference: 'https://github.com/rubocop-hq/ruby-style-guide/issues/628'
3314
+ Reference: 'https://blog.rubystyle.guide/ruby/2019/06/21/float-division.html'
3213
3315
  Enabled: true
3214
3316
  VersionAdded: '0.72'
3317
+ VersionChanged: '1.9'
3318
+ Safe: false
3215
3319
  EnforcedStyle: single_coerce
3216
3320
  SupportedStyles:
3217
3321
  - left_coerce
@@ -3259,6 +3363,7 @@ Style/FormatStringToken:
3259
3363
  MaxUnannotatedPlaceholdersAllowed: 1
3260
3364
  VersionAdded: '0.49'
3261
3365
  VersionChanged: '1.0'
3366
+ IgnoredMethods: []
3262
3367
 
3263
3368
  Style/FrozenStringLiteralComment:
3264
3369
  Description: >-
@@ -3327,6 +3432,13 @@ Style/HashEachMethods:
3327
3432
  VersionAdded: '0.80'
3328
3433
  Safe: false
3329
3434
 
3435
+ Style/HashExcept:
3436
+ Description: >-
3437
+ Checks for usages of `Hash#reject`, `Hash#select`, and `Hash#filter` methods
3438
+ that can be replaced with `Hash#except` method.
3439
+ Enabled: pending
3440
+ VersionAdded: '1.7'
3441
+
3330
3442
  Style/HashLikeCase:
3331
3443
  Description: >-
3332
3444
  Checks for places where `case-when` represents a simple 1:1
@@ -3405,6 +3517,11 @@ Style/IfUnlessModifierOfIfUnless:
3405
3517
  VersionAdded: '0.39'
3406
3518
  VersionChanged: '0.87'
3407
3519
 
3520
+ Style/IfWithBooleanLiteralBranches:
3521
+ Description: 'Checks for redundant `if` with boolean literal branches.'
3522
+ Enabled: pending
3523
+ VersionAdded: '1.9'
3524
+
3408
3525
  Style/IfWithSemicolon:
3409
3526
  Description: 'Do not use if x; .... Use the ternary operator instead.'
3410
3527
  StyleGuide: '#no-semicolon-ifs'
@@ -3481,6 +3598,7 @@ Style/KeywordParametersOrder:
3481
3598
  StyleGuide: '#keyword-parameters-order'
3482
3599
  Enabled: true
3483
3600
  VersionAdded: '0.90'
3601
+ VersionChanged: '1.7'
3484
3602
 
3485
3603
  Style/Lambda:
3486
3604
  Description: 'Use the new lambda literal syntax for single-line blocks.'
@@ -3519,7 +3637,7 @@ Style/MethodCallWithArgsParentheses:
3519
3637
  StyleGuide: '#method-invocation-parens'
3520
3638
  Enabled: false
3521
3639
  VersionAdded: '0.47'
3522
- VersionChanged: '0.61'
3640
+ VersionChanged: '1.7'
3523
3641
  IgnoreMacros: true
3524
3642
  IgnoredMethods: []
3525
3643
  IgnoredPatterns: []
@@ -3553,7 +3671,7 @@ Style/MethodDefParentheses:
3553
3671
  StyleGuide: '#method-parens'
3554
3672
  Enabled: true
3555
3673
  VersionAdded: '0.16'
3556
- VersionChanged: '0.35'
3674
+ VersionChanged: '1.7'
3557
3675
  EnforcedStyle: require_parentheses
3558
3676
  SupportedStyles:
3559
3677
  - require_parentheses
@@ -3659,6 +3777,7 @@ Style/MultilineMethodSignature:
3659
3777
  Description: 'Avoid multi-line method signatures.'
3660
3778
  Enabled: false
3661
3779
  VersionAdded: '0.59'
3780
+ VersionChanged: '1.7'
3662
3781
 
3663
3782
  Style/MultilineTernaryOperator:
3664
3783
  Description: >-
@@ -3687,7 +3806,8 @@ Style/MutableConstant:
3687
3806
  Description: 'Do not assign mutable objects to constants.'
3688
3807
  Enabled: true
3689
3808
  VersionAdded: '0.34'
3690
- VersionChanged: '0.65'
3809
+ VersionChanged: '1.8'
3810
+ SafeAutoCorrect: false
3691
3811
  EnforcedStyle: literals
3692
3812
  SupportedStyles:
3693
3813
  # literals: freeze literals assigned to constants
@@ -4025,11 +4145,16 @@ Style/RedundantArgument:
4025
4145
  Enabled: pending
4026
4146
  Safe: false
4027
4147
  VersionAdded: '1.4'
4148
+ VersionChanged: '1.7'
4028
4149
  Methods:
4029
4150
  # Array#join
4030
4151
  join: ''
4031
4152
  # String#split
4032
4153
  split: ' '
4154
+ # String#chomp
4155
+ chomp: "\n"
4156
+ # String#chomp!
4157
+ chomp!: "\n"
4033
4158
 
4034
4159
  Style/RedundantAssignment:
4035
4160
  Description: 'Checks for redundant assignment before returning.'
@@ -4272,7 +4397,7 @@ Style/SingleLineBlockParams:
4272
4397
  Description: 'Enforces the names of some block params.'
4273
4398
  Enabled: false
4274
4399
  VersionAdded: '0.16'
4275
- VersionChanged: '0.47'
4400
+ VersionChanged: '1.6'
4276
4401
  Methods:
4277
4402
  - reduce:
4278
4403
  - acc
@@ -4286,7 +4411,7 @@ Style/SingleLineMethods:
4286
4411
  StyleGuide: '#no-single-line-methods'
4287
4412
  Enabled: true
4288
4413
  VersionAdded: '0.9'
4289
- VersionChanged: '0.19'
4414
+ VersionChanged: '1.8'
4290
4415
  AllowIfMethodIsEmpty: true
4291
4416
 
4292
4417
  Style/SlicingWithRange:
@@ -4345,6 +4470,7 @@ Style/StringConcatenation:
4345
4470
  Enabled: true
4346
4471
  Safe: false
4347
4472
  VersionAdded: '0.89'
4473
+ VersionChanged: '1.6'
4348
4474
 
4349
4475
  Style/StringHashKeys:
4350
4476
  Description: 'Prefer symbols instead of strings as hash keys.'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Cookstyle
3
- VERSION = "7.3.11" # rubocop: disable Style/StringLiterals
4
- RUBOCOP_VERSION = '1.5.2'
3
+ VERSION = "7.6.1" # rubocop: disable Style/StringLiterals
4
+ RUBOCOP_VERSION = '1.9.0'
5
5
  end
@@ -64,7 +64,7 @@ module RuboCop
64
64
  'opensuse' => {
65
65
  '< 14' => true,
66
66
  '~> 42.0' => true,
67
- '= 15.0' => '15',
67
+ '~> 15.0, < 15.2' => '15',
68
68
  },
69
69
  'debian' => {
70
70
  '< 9' => true,
@@ -73,12 +73,12 @@ module RuboCop
73
73
  'centos' => {
74
74
  '< 6.0' => true,
75
75
  '~> 6.0, < 6.10' => '6',
76
- '~> 7.0, < 7.6 ' => '7',
76
+ '~> 7.0, < 7.7 ' => '7',
77
77
  },
78
78
  'redhat' => {
79
79
  '< 6.0' => true,
80
80
  '~> 6.0, < 6.10' => '6',
81
- '~> 7.0, < 7.6' => '7',
81
+ '~> 7.0, < 7.7' => '7',
82
82
  },
83
83
  'oracle' => {
84
84
  '< 6.0' => true,
@@ -74,7 +74,7 @@ module RuboCop
74
74
  when :str
75
75
  "'#{type.source}[#{name.value}]'"
76
76
  when :dstr
77
- "\"#{type.source}[#{name.value.source}]\""
77
+ "\"#{type.source}[#{name.value}]\""
78
78
  else
79
79
  "\"#{type.source}[\#{#{name.source}}]\""
80
80
  end
@@ -28,6 +28,7 @@ module RuboCop
28
28
  # property :name, String, name_property: true
29
29
  # attribute :name, kind_of: String
30
30
  # attribute :name, kind_of: String, name_attribute: true
31
+ # attribute :name, name_attribute: true, kind_of: String
31
32
  #
32
33
  class UnnecessaryNameProperty < Base
33
34
  extend AutoCorrector
@@ -35,36 +36,25 @@ module RuboCop
35
36
  MSG = 'There is no need to define a property or attribute named :name in a resource as Chef Infra defines this on all resources by default.'
36
37
  RESTRICT_ON_SEND = [:property, :attribute].freeze
37
38
 
38
- def_node_matcher :name_attribute?, <<-PATTERN
39
- (send nil? :attribute
40
- (sym :name)
41
- (hash
42
- (pair
43
- (sym :kind_of)
44
- (const nil? :String))
45
- (pair
46
- (sym :name_attribute)
47
- (true))?))
48
- PATTERN
49
-
50
39
  def_node_matcher :name_property?, <<-PATTERN
51
- (send nil? :property
52
- (sym :name)
53
- (const nil? :String)
54
- (hash
55
- (pair
56
- (sym :name_property)
57
- (true)))?)
40
+ (send nil? {:attribute :property}
41
+ (sym :name)
42
+ (const nil? :String)?
43
+ (hash $...)?
44
+ )
58
45
  PATTERN
59
46
 
60
47
  def on_send(node)
61
- name_property?(node) do
62
- add_offense(node, message: MSG, severity: :refactor) do |corrector|
63
- corrector.remove(node.source_range)
48
+ name_property?(node) do |hash_vals|
49
+ # It's perfectly valid to redefine the name property if you give it non-default values
50
+ # We do this in a few of our core resources where we give it a default value of "" for nameless resources
51
+ # If there are hash vals in this attribute/property compare them with the default keys and if there's anything
52
+ # else return so we don't alert
53
+ unless hash_vals.empty?
54
+ hash_keys = hash_vals.first.map { |x| x.key.value }
55
+ return unless (hash_keys - [:kind_of, :name_attribute, :name_property]).empty?
64
56
  end
65
- end
66
57
 
67
- name_attribute?(node) do
68
58
  add_offense(node, message: MSG, severity: :refactor) do |corrector|
69
59
  corrector.remove(node.source_range)
70
60
  end
@@ -49,4 +49,4 @@ module RuboCop
49
49
  end
50
50
  end
51
51
  end
52
- end
52
+ end
@@ -57,4 +57,4 @@ module RuboCop
57
57
  end
58
58
  end
59
59
  end
60
- end
60
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookstyle
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.11
4
+ version: 7.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-12-04 00:00:00.000000000 Z
12
+ date: 2021-01-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubocop
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 1.5.2
20
+ version: 1.9.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 1.5.2
27
+ version: 1.9.0
28
28
  description:
29
29
  email:
30
30
  - thom@chef.io
@@ -303,7 +303,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
303
303
  - !ruby/object:Gem::Version
304
304
  version: '0'
305
305
  requirements: []
306
- rubygems_version: 3.0.3
306
+ rubygems_version: 3.1.4
307
307
  signing_key:
308
308
  specification_version: 4
309
309
  summary: Cookstyle is a code linting tool that helps you to write better Chef Infra