cookstyle 6.20.2 → 7.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (231) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/config/cookstyle.yml +318 -247
  4. data/config/disable_all.yml +32 -0
  5. data/config/upstream.yml +271 -80
  6. data/lib/cookstyle/version.rb +2 -2
  7. data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +1 -1
  8. data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +1 -1
  9. data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +1 -1
  10. data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +1 -1
  11. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +1 -1
  12. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +1 -1
  13. data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +1 -1
  14. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +1 -1
  15. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +1 -1
  16. data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +1 -1
  17. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +1 -1
  18. data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +1 -1
  19. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +1 -1
  20. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +1 -1
  21. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +1 -1
  22. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +1 -1
  23. data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +1 -1
  24. data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +1 -1
  25. data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +1 -1
  26. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +1 -1
  27. data/lib/rubocop/cop/chef/correctness/node_normal.rb +1 -1
  28. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +1 -1
  29. data/lib/rubocop/cop/chef/correctness/node_save.rb +1 -1
  30. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +1 -1
  31. data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -0
  32. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +1 -1
  33. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +1 -1
  34. data/lib/rubocop/cop/chef/correctness/property_without_type.rb +1 -1
  35. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +1 -1
  36. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +1 -1
  37. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +1 -1
  38. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +1 -1
  39. data/lib/rubocop/cop/chef/correctness/service_resource.rb +1 -1
  40. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +1 -1
  41. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +1 -1
  42. data/lib/rubocop/cop/chef/deprecation/ use_automatic_resource_name.rb +1 -1
  43. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +1 -1
  44. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +1 -1
  45. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +1 -1
  46. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +1 -1
  47. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +1 -1
  48. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +1 -1
  49. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +56 -0
  50. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +1 -1
  51. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +1 -1
  52. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +1 -1
  53. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +1 -1
  54. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +1 -1
  55. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +1 -1
  56. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +1 -1
  57. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +1 -1
  58. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +1 -1
  59. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +3 -4
  60. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +1 -1
  61. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +1 -1
  62. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +1 -1
  63. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +1 -1
  64. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -0
  65. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +1 -1
  66. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +1 -1
  67. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +1 -1
  68. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +1 -1
  69. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +1 -1
  70. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +1 -1
  71. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +1 -1
  72. data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -0
  73. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +1 -1
  74. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +1 -1
  75. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +1 -1
  76. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +1 -1
  77. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +1 -1
  78. data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -0
  79. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +1 -1
  80. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +3 -3
  81. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +1 -1
  82. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +1 -1
  83. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +1 -1
  84. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +1 -1
  85. data/lib/rubocop/cop/chef/deprecation/node_set.rb +1 -1
  86. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +1 -1
  87. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +1 -1
  88. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +1 -1
  89. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +1 -1
  90. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +1 -1
  91. data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +1 -1
  92. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +1 -1
  93. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +1 -1
  94. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +1 -1
  95. data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +1 -1
  96. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +1 -1
  97. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +1 -1
  98. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +1 -1
  99. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +1 -1
  100. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +1 -1
  101. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +1 -1
  102. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +1 -1
  103. data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -0
  104. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +1 -1
  105. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +1 -1
  106. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +1 -1
  107. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +1 -1
  108. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +1 -1
  109. data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +1 -1
  110. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +1 -1
  111. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +1 -1
  112. data/lib/rubocop/cop/chef/effortless/berksfile.rb +1 -1
  113. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +1 -1
  114. data/lib/rubocop/cop/chef/effortless/data_bags.rb +1 -1
  115. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +1 -1
  116. data/lib/rubocop/cop/chef/effortless/node_environment.rb +1 -1
  117. data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +1 -1
  118. data/lib/rubocop/cop/chef/effortless/node_roles.rb +1 -1
  119. data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +1 -1
  120. data/lib/rubocop/cop/chef/effortless/search_used.rb +1 -1
  121. data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +1 -1
  122. data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +1 -1
  123. data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +1 -1
  124. data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +1 -1
  125. data/lib/rubocop/cop/chef/modernize/build_essential.rb +1 -1
  126. data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +1 -1
  127. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +1 -1
  128. data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +1 -1
  129. data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +1 -1
  130. data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +1 -1
  131. data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +1 -1
  132. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +1 -1
  133. data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +1 -1
  134. data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +1 -1
  135. data/lib/rubocop/cop/chef/modernize/definitions.rb +1 -1
  136. data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +1 -1
  137. data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +1 -1
  138. data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +1 -1
  139. data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +1 -1
  140. data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +1 -1
  141. data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +1 -1
  142. data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +1 -1
  143. data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +1 -1
  144. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +1 -1
  145. data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +1 -1
  146. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +1 -1
  147. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +1 -1
  148. data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +1 -1
  149. data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +1 -1
  150. data/lib/rubocop/cop/chef/modernize/node_init_package.rb +1 -1
  151. data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +1 -1
  152. data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +1 -1
  153. data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +1 -1
  154. data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +1 -1
  155. data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +1 -1
  156. data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +1 -1
  157. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +1 -1
  158. data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +1 -1
  159. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +1 -1
  160. data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +1 -1
  161. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +1 -1
  162. data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +1 -1
  163. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +1 -1
  164. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +1 -1
  165. data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +1 -1
  166. data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +1 -1
  167. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +1 -1
  168. data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +1 -1
  169. data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +1 -1
  170. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +1 -1
  171. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +1 -1
  172. data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +1 -1
  173. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +1 -1
  174. data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +1 -1
  175. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +1 -1
  176. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +17 -13
  177. data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +1 -1
  178. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +1 -1
  179. data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +1 -1
  180. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +4 -4
  181. data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +1 -1
  182. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +1 -1
  183. data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +1 -1
  184. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +1 -1
  185. data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +1 -1
  186. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +1 -1
  187. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +1 -1
  188. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +1 -1
  189. data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +1 -1
  190. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +1 -1
  191. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +1 -1
  192. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +1 -1
  193. data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +1 -1
  194. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +1 -1
  195. data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +1 -1
  196. data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +1 -1
  197. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +1 -1
  198. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +1 -1
  199. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +1 -1
  200. data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +1 -1
  201. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +1 -1
  202. data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +1 -1
  203. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +1 -1
  204. data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +13 -12
  205. data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +1 -1
  206. data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +1 -1
  207. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +1 -1
  208. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +1 -1
  209. data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +1 -1
  210. data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +1 -1
  211. data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +1 -1
  212. data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +1 -1
  213. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +1 -1
  214. data/lib/rubocop/cop/chef/style/attribute_keys.rb +1 -1
  215. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +1 -1
  216. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +2 -2
  217. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +4 -3
  218. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +1 -1
  219. data/lib/rubocop/cop/chef/style/comments_format.rb +1 -1
  220. data/lib/rubocop/cop/chef/style/file_mode.rb +1 -1
  221. data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +1 -1
  222. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +1 -1
  223. data/lib/rubocop/cop/chef/style/negating_only_if.rb +1 -1
  224. data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +1 -1
  225. data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +1 -1
  226. data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +1 -1
  227. data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +1 -1
  228. data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +1 -1
  229. data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +1 -1
  230. data/lib/rubocop/monkey_patches/comment_config.rb +1 -1
  231. metadata +10 -4
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Provides should be set using the `provides` resource DSL method instead of instead of setting @provides in the initialize method.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # The resource name can now be specified using the `resource_name` helper instead of using the @resource_name variable in the resource provider initialize method. In general we recommend against writing HWRPs, but if HWRPs are necessary you should utilize as much of the resource DSL as possible.
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # set_or_return within a method should not be used to define property in a resource. Instead use
24
24
  # the property method which properly validates and defines properties in a way that works with
25
25
  # reporting and documentation functionality in Chef Infra Client
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # In HWRPs and LWRPs you defined attributes, but custom resources changed the name to
24
24
  # be properties to avoid confusion with chef recipe attributes. When writing a custom resource
25
25
  # they should be called properties even though the two are aliased.
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # There is no need to check if the chef_gem resource supports compile_time as Chef Infra Client 12.1 and later support the compile_time property.
23
23
  #
24
24
  # # bad
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # It is not longer necessary respond_to?(:foo) or defined?(foo) in metadata. This was used to support new metadata
23
23
  # methods in Chef 11 and early versions of Chef 12.
24
24
  #
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # In Chef Infra Client 12+ is is no longer necessary to gate the use of the provides methods in resources with `if respond_to?(:provides)` or `if defined? provides`.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Chef Infra Client 12.5 introduced the resource_name method for resources. Many cookbooks used respond_to?(:resource_name) to provide backwards compatibility with older chef-client releases. This backwards compatibility is no longer necessary.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # The sc_windows resource from the sc cookbook allowed for the creation of windows services on legacy Chef Infra Client releases. Chef Infra Client 14.0 and later includes :create, :delete, and :configure actions without the need for additional cookbook dependencies. See the windows_service documentation at https://docs.chef.io/resource_windows_service.html for additional details on creating services with the windows_service resource.
23
23
  #
24
24
  # # bad
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # Use the archive_file resource built into Chef Infra Client 15+ instead of the seven_zip_archive
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # Use the built-in `shell_out` helper available in Chef Infra Client 12.11+ instead of calling `Mixlib::ShellOut.new('foo').run_command`.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Use the Chocolatey resources built into Chef Infra Client instead of shelling out to the choco command
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # The apt_repository resource allows setting up PPAs without using the full URL to ppa.launchpad.net, which should be used to simplify the resource code in your cookbooks.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # The sysctl_param resource was renamed to sysctl when it was added to Chef Infra Client 14.0. The new resource name should be used.
23
23
  #
24
24
  # # bad
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # Chef Infra Client 12.4+ includes mixlib/shellout automatically in resources and providers.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Pass an array of packages to package resources instead of iterating over an array of packages when using multi-package capable package subsystem such as apt, yum, chocolatey, dnf, or zypper. Multi-package installs are faster and simplify logs.
23
23
  #
24
24
  # @example
@@ -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
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Instead of using require with a File.expand_path and __FILE__ use the simpler require_relative method.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # whyrun_supported? no longer needs to be set to true as that is the default in Chef Infra Client 13+
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Don't include the windows default recipe that is either full of gem install that are part of the Chef Infra Client, or empty (depends on version).
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Chef Infra Client 15.0 and later includes a windows_uac resource that should be used to set Windows UAC values instead of setting registry keys directly.
23
23
  #
24
24
  # # bad
@@ -37,7 +37,7 @@ module RuboCop
37
37
  # consent_behavior_admins :no_prompt
38
38
  # end
39
39
  #
40
- class WindowsRegistryUAC < Cop
40
+ class WindowsRegistryUAC < Base
41
41
  include RuboCop::Chef::CookbookHelpers
42
42
  extend TargetChefVersion
43
43
 
@@ -53,7 +53,7 @@ module RuboCop
53
53
 
54
54
  # use source instead of .value in case there's string interpolation which adds a complex dstr type
55
55
  # with a nested string and a begin. Source allows us to avoid a lot of defensive programming here
56
- add_offense(node, location: :expression, message: MSG, severity: :refactor)
56
+ add_offense(node, message: MSG, severity: :refactor)
57
57
  end
58
58
 
59
59
  # block execute resources
@@ -61,7 +61,7 @@ module RuboCop
61
61
  match_property_in_resource?(:registry_key, 'key', node) do |key_prop|
62
62
  property_data = method_arg_ast_to_string(key_prop)
63
63
  return unless property_data && property_data.match?(/(HKLM|HKEY_LOCAL_MACHINE)\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System/i)
64
- add_offense(node, location: :expression, message: MSG, severity: :refactor)
64
+ add_offense(node, message: MSG, severity: :refactor)
65
65
  end
66
66
  end
67
67
  end
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # Use the archive_file resource built into Chef Infra Client 15+ instead of the windows_zipfile from the Windows cookbook
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefModernize
22
+ module Modernize
23
23
  # Use the archive_file resource built into Chef Infra Client 15+ instead of the zipfile resource from the zipfile cookbook.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefModernize
21
+ module Modernize
22
22
  # The zypper_repo resource was renamed zypper_repository when it was added to Chef Infra Client 13.3.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # There is no need to pass `distribution node['lsb']['codename']` to an apt_repository resource as this is done automatically by the apt_repository resource.
23
23
  #
24
24
  # # bad
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # There is no need to notify an apt-get update when an apt_repository is created as this is done automatically by the apt_repository resource.
23
23
  #
24
24
  # # bad
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The attribute metadata.rb method is not used and is unnecessary in cookbooks.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The conflicts metadata.rb method is not used and is unnecessary in cookbooks.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # It is not necessary to set `actions` or `allowed_actions` in custom resources as Chef Infra Client determines these automatically from the set of all actions defined in the resource.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # If a resource includes the `compile_time` property there's no need to also use `.run_action(:some_action)` on the resource block
23
23
  #
24
24
  # # bad
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The grouping metadata.rb method is not used and is unnecessary in cookbooks.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The long_description metadata.rb method is not used and is unnecessary in cookbooks.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # You can pass multiple values to the platform? and platform_family? helpers instead of calling the helpers multiple times.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # When using properties in a custom resource you shouldn't set a property to
23
23
  # be both required and a name_property. Name properties are a way to optionally
24
24
  # override the name given to the resource block in cookbook code. In your resource
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # Many Ohai node attributes are already strings and don't need to be cast to strings again
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # When a property has a type of String it can accept any string. There is no need to also validate string inputs against a regex that accept all values.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefRedundantCode
21
+ module RedundantCode
22
22
  # When using properties in a custom resource you shouldn't set a property to
23
23
  # required and then provide a default value. If a property is required the
24
24
  # user will always pass in a value and the default will never be used. In Chef
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The provides metadata.rb method is not used and is unnecessary in cookbooks.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefRedundantCode
22
+ module RedundantCode
23
23
  # The recipe metadata.rb method is not used and is unnecessary in cookbooks. Recipes should be documented in the cookbook's README.md file instead.
24
24
  #
25
25
  # @example