cookstyle 7.0.0 → 7.1.2

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: b7657520e64c1c6c6a5fb35520e8b03b7627c0cbf7f8c97c6b98876188174dd2
4
- data.tar.gz: 541043c03cc4521990a973bad5b07834c89fa60d1d385ca449c63979917689ce
3
+ metadata.gz: 662226d3c6dc1e7ba00c89296274f8a46f04c7012abc658b0dd85b65e4d47126
4
+ data.tar.gz: a814e8b4190084045c668e3c82b8616640e593121046f4da0095373c614bf77c
5
5
  SHA512:
6
- metadata.gz: 177c42fe47c369af9a4f83545c0b702ee0407e3e66eb7f055055fa644b24fdc2f99dcfcabe7c1b16c29ed58a90d351a5e8a573a6e7d5beb443cecf0f858e4751
7
- data.tar.gz: 48ccb6906f3793eabd00fe6f3b3ff1651196375d509ef5d07018552364e1f7b7dce47434d3d8c766b1aa3910b734747c3f39669a5749174f275e51ae6a81fb61
6
+ metadata.gz: 3e56b4d1cd6fe22d917798beb027bdfd22a8b61d1e1ff55f6183707af0cabc80ba04fba87ae4e26bc5baae8d5c9603dcd39ddb48c8bfda1bbfb0419ca78fb3a6
7
+ data.tar.gz: a2c799f5706fc3ba55acbc2733392a4a162eec03199fab91c26ce8609cee96bcdd8d865ddd5f3361e1aed07e0ebeba82b5b42113d30a678c2dd073c6cccbf7df
@@ -1137,6 +1137,23 @@ Chef/Deprecations/UseYamlDump:
1137
1137
  Enabled: true
1138
1138
  VersionAdded: '6.21.0'
1139
1139
 
1140
+ Chef/Deprecations/LibrarianChefSpec:
1141
+ Description: The Librarian-Chef depsolving project is no longer maintained and ChefSpec should not use Librarian-Chef for cookbook depsolving. Consider using Policyfiles instead.
1142
+ StyleGuide: '#chefdeprecationslibrarianchefspec'
1143
+ Enabled: true
1144
+ VersionAdded: '7.1.0'
1145
+ Include:
1146
+ - '**/specs/*.rb'
1147
+
1148
+ Chef/Deprecations/FoodcriticTesting:
1149
+ Description: The Foodcritic cookbook linter has been deprecated and should no longer be used for validating cookbooks
1150
+ StyleGuide: '#chefdeprecationsfoodcritictesting'
1151
+ Enabled: true
1152
+ VersionAdded: '7.1.0'
1153
+ Include:
1154
+ - '**/Rakefile'
1155
+ - '**/Gemfile'
1156
+
1140
1157
  ###############################
1141
1158
  # Chef/Modernize: Cleaning up legacy code and using new built-in resources
1142
1159
  ###############################
@@ -2746,4 +2763,8 @@ Style/ExpandPathArguments:
2746
2763
 
2747
2764
  # Avoid a safe navigation operator if we don't need it
2748
2765
  Lint/RedundantSafeNavigation:
2766
+ Enabled: true
2767
+
2768
+ # Avoid using blocks to remove nils from a Hash/Array
2769
+ Style/CollectionCompact:
2749
2770
  Enabled: true
@@ -307,6 +307,8 @@ Lint/NestedPercentLiteral:
307
307
  Enabled: false
308
308
  Lint/NextWithoutAccumulator:
309
309
  Enabled: false
310
+ Lint/NoReturnInBeginEndBlocks:
311
+ Enabled: false
310
312
  Lint/NonDeterministicRequireOrder:
311
313
  Enabled: false
312
314
  Lint/NonLocalExitFromIterator:
@@ -515,6 +517,8 @@ Style/ClassMethodsDefinitions:
515
517
  Enabled: false
516
518
  Style/ClassVars:
517
519
  Enabled: false
520
+ Style/CollectionCompact:
521
+ Enabled: false
518
522
  Style/CollectionMethods:
519
523
  Enabled: false
520
524
  Style/ColonMethodCall:
@@ -689,6 +693,8 @@ Style/MutableConstant:
689
693
  Enabled: false
690
694
  Style/NegatedIf:
691
695
  Enabled: false
696
+ Style/NegatedIfElseCondition:
697
+ Enabled: false
692
698
  Style/NegatedUnless:
693
699
  Enabled: false
694
700
  Style/NegatedWhile:
@@ -1478,6 +1478,7 @@ Lint/ElseLayout:
1478
1478
  Description: 'Check for odd code arrangement in an else block.'
1479
1479
  Enabled: true
1480
1480
  VersionAdded: '0.17'
1481
+ VersionChanged: '1.2'
1481
1482
 
1482
1483
  Lint/EmptyBlock:
1483
1484
  Description: 'This cop checks for blocks without a body.'
@@ -1679,6 +1680,11 @@ Lint/NextWithoutAccumulator:
1679
1680
  Enabled: true
1680
1681
  VersionAdded: '0.36'
1681
1682
 
1683
+ Lint/NoReturnInBeginEndBlocks:
1684
+ Description: 'Do not `return` inside `begin..end` blocks in assignment contexts.'
1685
+ Enabled: pending
1686
+ VersionAdded: '1.2'
1687
+
1682
1688
  Lint/NonDeterministicRequireOrder:
1683
1689
  Description: 'Always sort arrays returned by Dir.glob when requiring files.'
1684
1690
  Enabled: true
@@ -2036,8 +2042,9 @@ Lint/UselessMethodDefinition:
2036
2042
  Lint/UselessSetterCall:
2037
2043
  Description: 'Checks for useless setter call to a local variable.'
2038
2044
  Enabled: true
2045
+ SafeAutoCorrect: false
2039
2046
  VersionAdded: '0.13'
2040
- VersionChanged: '0.80'
2047
+ VersionChanged: '1.2'
2041
2048
  Safe: false
2042
2049
 
2043
2050
  Lint/UselessTimes:
@@ -2181,6 +2188,7 @@ Naming/BinaryOperatorParameterName:
2181
2188
  StyleGuide: '#other-arg'
2182
2189
  Enabled: true
2183
2190
  VersionAdded: '0.50'
2191
+ VersionChanged: '1.2'
2184
2192
 
2185
2193
  Naming/BlockParameterName:
2186
2194
  Description: >-
@@ -2287,6 +2295,7 @@ Naming/HeredocDelimiterCase:
2287
2295
  StyleGuide: '#heredoc-delimiters'
2288
2296
  Enabled: true
2289
2297
  VersionAdded: '0.50'
2298
+ VersionChanged: '1.2'
2290
2299
  EnforcedStyle: uppercase
2291
2300
  SupportedStyles:
2292
2301
  - lowercase
@@ -2305,7 +2314,7 @@ Naming/MemoizedInstanceVariableName:
2305
2314
  Memoized method name should match memo instance variable name.
2306
2315
  Enabled: true
2307
2316
  VersionAdded: '0.53'
2308
- VersionChanged: '0.58'
2317
+ VersionChanged: '1.2'
2309
2318
  EnforcedStyleForLeadingUnderscores: disallowed
2310
2319
  SupportedStylesForLeadingUnderscores:
2311
2320
  - disallowed
@@ -2403,14 +2412,18 @@ Naming/VariableName:
2403
2412
  - camelCase
2404
2413
 
2405
2414
  Naming/VariableNumber:
2406
- Description: 'Use the configured style when numbering variables.'
2415
+ Description: 'Use the configured style when numbering symbols, methods and variables.'
2416
+ StyleGuide: '#snake-case-symbols-methods-vars-with-numbers'
2407
2417
  Enabled: true
2408
2418
  VersionAdded: '0.50'
2419
+ VersionChanged: '1.2'
2409
2420
  EnforcedStyle: normalcase
2410
2421
  SupportedStyles:
2411
2422
  - snake_case
2412
2423
  - normalcase
2413
2424
  - non_integer
2425
+ CheckMethodNames: true
2426
+ CheckSymbols: true
2414
2427
 
2415
2428
  #################### Security ##############################
2416
2429
 
@@ -2789,6 +2802,11 @@ Style/ClassVars:
2789
2802
  Enabled: true
2790
2803
  VersionAdded: '0.13'
2791
2804
 
2805
+ Style/CollectionCompact:
2806
+ Description: 'Use `{Array,Hash}#{compact,compact!}` instead of custom logic to reject nils.'
2807
+ Enabled: pending
2808
+ VersionAdded: '1.2'
2809
+
2792
2810
  # Align with the style guide.
2793
2811
  Style/CollectionMethods:
2794
2812
  Description: 'Preferred collection methods.'
@@ -2986,7 +3004,7 @@ Style/DoubleNegation:
2986
3004
  StyleGuide: '#no-bang-bang'
2987
3005
  Enabled: true
2988
3006
  VersionAdded: '0.19'
2989
- VersionChanged: '0.84'
3007
+ VersionChanged: '1.2'
2990
3008
  EnforcedStyle: allowed_in_returns
2991
3009
  SafeAutoCorrect: false
2992
3010
  SupportedStyles:
@@ -3611,6 +3629,13 @@ Style/NegatedIf:
3611
3629
  - prefix
3612
3630
  - postfix
3613
3631
 
3632
+ Style/NegatedIfElseCondition:
3633
+ Description: >-
3634
+ This cop checks for uses of `if-else` and ternary operators with a negated condition
3635
+ which can be simplified by inverting condition and swapping branches.
3636
+ Enabled: pending
3637
+ VersionAdded: '1.2'
3638
+
3614
3639
  Style/NegatedUnless:
3615
3640
  Description: 'Favor if over unless for negative conditions.'
3616
3641
  StyleGuide: '#if-for-negatives'
@@ -3888,11 +3913,12 @@ Style/RaiseArgs:
3888
3913
  StyleGuide: '#exception-class-messages'
3889
3914
  Enabled: true
3890
3915
  VersionAdded: '0.14'
3891
- VersionChanged: '0.40'
3916
+ VersionChanged: '1.2'
3892
3917
  EnforcedStyle: exploded
3893
3918
  SupportedStyles:
3894
3919
  - compact # raise Exception.new(msg)
3895
3920
  - exploded # raise Exception, msg
3921
+ AllowedCompactTypes: []
3896
3922
 
3897
3923
  Style/RandomWithOffset:
3898
3924
  Description: >-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Cookstyle
3
- VERSION = "7.0.0" # rubocop: disable Style/StringLiterals
4
- RUBOCOP_VERSION = '1.1.0'
3
+ VERSION = "7.1.2" # rubocop: disable Style/StringLiterals
4
+ RUBOCOP_VERSION = '1.2.0'
5
5
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2020, Chef Software, Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Deprecations
22
+ # The Foodcritic cookbook linter has been deprecated and should no longer be used for validating cookbooks.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # gem 'foodcritic'
28
+ # require 'foodcritic'
29
+ #
30
+ class FoodcriticTesting < Base
31
+ MSG = 'The Foodcritic cookbook linter has been deprecated and should no longer be used for validating cookbooks.'
32
+ RESTRICT_ON_SEND = [:require, :gem].freeze
33
+
34
+ def on_send(node)
35
+ return unless node.arguments.first == s(:str, 'foodcritic')
36
+
37
+ add_offense(node, message: MSG, severity: :warning)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2020, Chef Software, Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Deprecations
22
+ # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # require 'chefspec/librarian'
28
+ #
29
+ class LibrarianChefSpec < Base
30
+ MSG = 'The Librarian-Chef depsolving project is no longer maintained and ChefSpec should not use Librarian-Chef for cookbook depsolving. Consider using Policyfiles instead.'
31
+ RESTRICT_ON_SEND = [:require].freeze
32
+
33
+ def on_send(node)
34
+ return unless node.arguments.first == s(:str, 'chefspec/librarian')
35
+
36
+ add_offense(node, message: MSG, severity: :warning)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -60,8 +60,8 @@ module RuboCop
60
60
  (lvar _))}) nil?)
61
61
  PATTERN
62
62
 
63
- def_node_matcher :package_array_install?, <<-PATTERN
64
- (block
63
+ def_node_search :package_array_install, <<-PATTERN
64
+ $(block
65
65
  (send
66
66
  $(array ... ) :each)
67
67
  (args ... )
@@ -78,27 +78,31 @@ module RuboCop
78
78
  # see if all platforms in the when condition are multi-package compliant
79
79
  def multipackage_platforms?(condition_obj)
80
80
  condition_obj.all? do |p|
81
- MULTIPACKAGE_PLATS.include?(p.value)
81
+ # make sure it's a string (not a regex) and it's in the array
82
+ p.str_type? && MULTIPACKAGE_PLATS.include?(p.value)
82
83
  end
83
84
  end
84
85
 
85
86
  def on_when(node)
86
87
  return unless platform_or_platform_family?(node.parent.condition) &&
87
- package_array_install?(node.body) &&
88
88
  multipackage_platforms?(node.conditions)
89
- check_offense(node.body)
89
+ return if node.body.nil? # don't blow up on empty whens
90
+
91
+ package_array_install(node.body) do |install_block, pkgs|
92
+ add_offense(install_block, message: MSG, severity: :refactor) do |corrector|
93
+ corrector.replace(install_block, "package #{pkgs.source}")
94
+ end
95
+ end
90
96
  end
91
97
 
92
98
  def on_if(node)
93
99
  platform_helper?(node) do |plats, blk, _pkgs|
94
- check_offense(blk) if multipackage_platforms?(plats)
95
- end
96
- end
100
+ return unless multipackage_platforms?(plats)
97
101
 
98
- def check_offense(node)
99
- add_offense(node, message: MSG, severity: :refactor) do |corrector|
100
- package_array_install?(node) do |vals|
101
- corrector.replace(node, "package #{vals.source}")
102
+ add_offense(blk, message: MSG, severity: :refactor) do |corrector|
103
+ package_array_install(blk) do |install_block, pkgs|
104
+ corrector.replace(install_block, "package #{pkgs.source}")
105
+ end
102
106
  end
103
107
  end
104
108
  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.0.0
4
+ version: 7.1.2
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-10-29 00:00:00.000000000 Z
12
+ date: 2020-11-05 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.1.0
20
+ version: 1.2.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.1.0
27
+ version: 1.2.0
28
28
  description:
29
29
  email:
30
30
  - thom@chef.io
@@ -113,11 +113,13 @@ files:
113
113
  - lib/rubocop/cop/chef/deprecation/erl_call.rb
114
114
  - lib/rubocop/cop/chef/deprecation/execute_path_property.rb
115
115
  - lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb
116
+ - lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb
116
117
  - lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb
117
118
  - lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb
118
119
  - lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb
119
120
  - lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb
120
121
  - lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb
122
+ - lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb
121
123
  - lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb
122
124
  - lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb
123
125
  - lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb