cookstyle 7.32.8 → 8.0.0

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.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +25 -29
  3. data/LICENSE +201 -201
  4. data/bin/cookstyle +31 -31
  5. data/bin/cookstyle-profile +31 -31
  6. data/config/chefstyle.yml +892 -741
  7. data/config/cookstyle.yml +3273 -3131
  8. data/config/default.yml +2 -2
  9. data/cookstyle.gemspec +34 -30
  10. data/lib/cookstyle/chefstyle.rb +5 -5
  11. data/lib/cookstyle/version.rb +5 -5
  12. data/lib/cookstyle.rb +48 -45
  13. data/lib/rubocop/chef/autocorrect_helpers.rb +33 -33
  14. data/lib/rubocop/chef/cookbook_helpers.rb +127 -127
  15. data/lib/rubocop/chef/cookbook_only.rb +76 -76
  16. data/lib/rubocop/chef/platform_helpers.rb +72 -72
  17. data/lib/rubocop/chef.rb +11 -11
  18. data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +61 -61
  19. data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +56 -56
  20. data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +69 -69
  21. data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +55 -55
  22. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +77 -77
  23. data/lib/rubocop/cop/chef/correctness/invalid_cookbook_name.rb +47 -47
  24. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +48 -48
  25. data/lib/rubocop/cop/chef/correctness/invalid_notification_resource.rb +59 -59
  26. data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +55 -55
  27. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +72 -72
  28. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +70 -70
  29. data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +57 -57
  30. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +89 -89
  31. data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +70 -70
  32. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +70 -70
  33. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +69 -69
  34. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +48 -48
  35. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +53 -53
  36. data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +67 -67
  37. data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +67 -67
  38. data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +67 -67
  39. data/lib/rubocop/cop/chef/correctness/metadata_malformed_version.rb +58 -58
  40. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +54 -54
  41. data/lib/rubocop/cop/chef/correctness/metadata_missing_version.rb +51 -51
  42. data/lib/rubocop/cop/chef/correctness/node_normal.rb +53 -53
  43. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +53 -53
  44. data/lib/rubocop/cop/chef/correctness/node_save.rb +46 -46
  45. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +64 -64
  46. data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -48
  47. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +46 -46
  48. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +54 -54
  49. data/lib/rubocop/cop/chef/correctness/powershell_file_exists.rb +50 -50
  50. data/lib/rubocop/cop/chef/correctness/property_without_type.rb +59 -59
  51. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +51 -51
  52. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +50 -50
  53. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +56 -56
  54. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +52 -52
  55. data/lib/rubocop/cop/chef/correctness/service_resource.rb +56 -56
  56. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +52 -52
  57. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +59 -59
  58. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +57 -57
  59. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +52 -52
  60. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +55 -55
  61. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +57 -57
  62. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +98 -98
  63. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +83 -83
  64. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +55 -55
  65. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +55 -55
  66. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +56 -56
  67. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +39 -39
  68. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +49 -49
  69. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +61 -61
  70. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +56 -56
  71. data/lib/rubocop/cop/chef/deprecation/delivery.rb +48 -48
  72. data/lib/rubocop/cop/chef/deprecation/depends_chef_nginx_cookbook.rb +54 -54
  73. data/lib/rubocop/cop/chef/deprecation/depends_chef_reporting_cookbook.rb +51 -51
  74. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +54 -54
  75. data/lib/rubocop/cop/chef/deprecation/depends_omnibus_updater_cookbook.rb +54 -54
  76. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +50 -50
  77. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +48 -48
  78. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +129 -129
  79. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +78 -78
  80. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +61 -61
  81. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +64 -64
  82. data/lib/rubocop/cop/chef/deprecation/deprecated_sudo_actions.rb +65 -65
  83. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +42 -42
  84. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -67
  85. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +69 -69
  86. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +42 -42
  87. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +49 -49
  88. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +51 -51
  89. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +42 -42
  90. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +50 -50
  91. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +66 -66
  92. data/lib/rubocop/cop/chef/deprecation/foodcritic_file.rb +41 -41
  93. data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -43
  94. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +140 -140
  95. data/lib/rubocop/cop/chef/deprecation/hwrp_without_unified_mode_true.rb +86 -86
  96. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +59 -59
  97. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +56 -56
  98. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +91 -91
  99. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +53 -53
  100. data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -42
  101. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +46 -46
  102. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +63 -63
  103. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +60 -60
  104. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +60 -60
  105. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +65 -65
  106. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +80 -80
  107. data/lib/rubocop/cop/chef/deprecation/node_set.rb +54 -54
  108. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +54 -54
  109. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +70 -70
  110. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +67 -67
  111. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +61 -61
  112. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +63 -63
  113. data/lib/rubocop/cop/chef/deprecation/policyfile_community_source.rb +53 -53
  114. data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +59 -59
  115. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +53 -53
  116. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +48 -48
  117. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +46 -46
  118. data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +84 -84
  119. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +40 -40
  120. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +50 -50
  121. data/lib/rubocop/cop/chef/deprecation/resource_without_unified_mode_true.rb +87 -87
  122. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +56 -56
  123. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +62 -62
  124. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +63 -63
  125. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +136 -136
  126. data/lib/rubocop/cop/chef/deprecation/use_automatic_resource_name.rb +52 -52
  127. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +57 -57
  128. data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -47
  129. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +71 -71
  130. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +57 -57
  131. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +58 -58
  132. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +60 -60
  133. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +83 -83
  134. data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +71 -71
  135. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +51 -51
  136. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +53 -53
  137. data/lib/rubocop/cop/chef/effortless/berksfile.rb +39 -39
  138. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +87 -87
  139. data/lib/rubocop/cop/chef/effortless/data_bags.rb +40 -40
  140. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +47 -47
  141. data/lib/rubocop/cop/chef/effortless/node_environment.rb +45 -45
  142. data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +44 -44
  143. data/lib/rubocop/cop/chef/effortless/node_roles.rb +45 -45
  144. data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +43 -43
  145. data/lib/rubocop/cop/chef/effortless/search_used.rb +40 -40
  146. data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +57 -57
  147. data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +77 -77
  148. data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +54 -54
  149. data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +70 -70
  150. data/lib/rubocop/cop/chef/modernize/build_essential.rb +55 -55
  151. data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +60 -60
  152. data/lib/rubocop/cop/chef/modernize/chef_15_resources.rb +57 -57
  153. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +63 -63
  154. data/lib/rubocop/cop/chef/modernize/class_eval_action_class.rb +63 -63
  155. data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +53 -53
  156. data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +55 -55
  157. data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +121 -121
  158. data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +50 -50
  159. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +59 -59
  160. data/lib/rubocop/cop/chef/modernize/declare_action_class.rb +54 -54
  161. data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +74 -74
  162. data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +54 -54
  163. data/lib/rubocop/cop/chef/modernize/definitions.rb +36 -36
  164. data/lib/rubocop/cop/chef/modernize/depends_chef_vault_cookbook.rb +54 -54
  165. data/lib/rubocop/cop/chef/modernize/depends_chocolatey_cookbooks.rb +55 -55
  166. data/lib/rubocop/cop/chef/modernize/depends_kernel_module_cookbook.rb +54 -54
  167. data/lib/rubocop/cop/chef/modernize/depends_locale_cookbook.rb +54 -54
  168. data/lib/rubocop/cop/chef/modernize/depends_openssl_cookbook.rb +54 -54
  169. data/lib/rubocop/cop/chef/modernize/depends_timezone_lwrp_cookbook.rb +54 -54
  170. data/lib/rubocop/cop/chef/modernize/depends_windows_firewall_cookbook.rb +54 -54
  171. data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +54 -54
  172. data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +55 -55
  173. data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +52 -52
  174. data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +81 -81
  175. data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +67 -67
  176. data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +76 -76
  177. data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +70 -70
  178. data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +83 -83
  179. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +46 -46
  180. data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +48 -48
  181. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +83 -83
  182. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +70 -70
  183. data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +58 -58
  184. data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +51 -51
  185. data/lib/rubocop/cop/chef/modernize/node_init_package.rb +89 -89
  186. data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +57 -57
  187. data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +47 -47
  188. data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +54 -54
  189. data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +60 -60
  190. data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +51 -51
  191. data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +50 -50
  192. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +68 -68
  193. data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +53 -53
  194. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +56 -56
  195. data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +56 -56
  196. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +68 -68
  197. data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +63 -63
  198. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +49 -49
  199. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +66 -66
  200. data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +94 -94
  201. data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +77 -77
  202. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +63 -63
  203. data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +52 -52
  204. data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +53 -53
  205. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +46 -46
  206. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +60 -60
  207. data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +58 -58
  208. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +63 -63
  209. data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +55 -55
  210. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +51 -51
  211. data/lib/rubocop/cop/chef/modernize/use_chef_language_cloud_helpers.rb +93 -93
  212. data/lib/rubocop/cop/chef/modernize/use_chef_language_env_helpers.rb +69 -69
  213. data/lib/rubocop/cop/chef/modernize/use_chef_language_systemd_helper.rb +60 -60
  214. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +113 -113
  215. data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +60 -60
  216. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +58 -58
  217. data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +52 -52
  218. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +92 -92
  219. data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +46 -46
  220. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +59 -59
  221. data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +60 -60
  222. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +65 -65
  223. data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +60 -60
  224. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +52 -52
  225. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +46 -46
  226. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +60 -60
  227. data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +68 -68
  228. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +46 -46
  229. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +46 -46
  230. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +58 -58
  231. data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +81 -81
  232. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +65 -65
  233. data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +59 -59
  234. data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +61 -61
  235. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +46 -46
  236. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +47 -47
  237. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +46 -46
  238. data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +52 -52
  239. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +50 -50
  240. data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +64 -64
  241. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +46 -46
  242. data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +60 -60
  243. data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +67 -67
  244. data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +116 -116
  245. data/lib/rubocop/cop/chef/security/ssh_private_key.rb +49 -49
  246. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +50 -50
  247. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +47 -47
  248. data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +55 -55
  249. data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +52 -52
  250. data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +60 -60
  251. data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +62 -62
  252. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +542 -542
  253. data/lib/rubocop/cop/chef/style/attribute_keys.rb +94 -95
  254. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +49 -49
  255. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +42 -42
  256. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +101 -101
  257. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +50 -50
  258. data/lib/rubocop/cop/chef/style/comments_format.rb +71 -71
  259. data/lib/rubocop/cop/chef/style/file_mode.rb +86 -86
  260. data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +59 -59
  261. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +58 -58
  262. data/lib/rubocop/cop/chef/style/negating_only_if.rb +69 -69
  263. data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +70 -70
  264. data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +89 -89
  265. data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +53 -53
  266. data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +103 -103
  267. data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +100 -100
  268. data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +86 -86
  269. data/lib/rubocop/cop/chefstyle/ruby/gemspec_license.rb +55 -55
  270. data/lib/rubocop/cop/chefstyle/ruby/gemspec_require_rubygems.rb +46 -46
  271. data/lib/rubocop/cop/chefstyle/ruby/legacy_powershell_out_methods.rb +36 -36
  272. data/lib/rubocop/cop/chefstyle/ruby/require_net_https.rb +54 -54
  273. data/lib/rubocop/cop/chefstyle/ruby/unless_defined_require.rb +122 -122
  274. data/lib/rubocop/cop/inspec/deprecation/attribute_default.rb +53 -53
  275. data/lib/rubocop/cop/inspec/deprecation/attribute_helper.rb +47 -47
  276. data/lib/rubocop/cop/target_chef_version.rb +22 -22
  277. data/lib/rubocop/monkey_patches/allow_invalid_ruby.rb +28 -28
  278. data/lib/rubocop/monkey_patches/base.rb +11 -11
  279. data/lib/rubocop/monkey_patches/config.rb +15 -15
  280. data/lib/rubocop/monkey_patches/directive_comment.rb +12 -12
  281. data/lib/rubocop/monkey_patches/registry_cop.rb +15 -15
  282. data/lib/rubocop/monkey_patches/team.rb +25 -24
  283. metadata +33 -9
@@ -1,129 +1,129 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 2020-2022, Chef Software Inc.
4
- # Author:: Tim Smith (<tsmith84@gmail.com>)
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
- # Use currently supported platforms in ChefSpec listed at https://github.com/chefspec/fauxhai/blob/main/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version values so it's always best to be less specific ie. 10 instead of 10.3
23
- #
24
- # @example
25
- #
26
- # let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '14.04') }
27
- #
28
- class DeprecatedChefSpecPlatform < Base
29
- include RuboCop::Chef::CookbookHelpers
30
- extend AutoCorrector
31
-
32
- MSG = "Use currently supported platforms in ChefSpec listed at https://github.com/chefspec/fauxhai/blob/main/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version so it's always best to be less specific ie. 10 instead of 10.3"
33
-
34
- DEPRECATED_MAPPING = {
35
- 'amazon' => {
36
- '2017.12' => '2',
37
- '> 2010' => true,
38
- },
39
- 'aix' => {
40
- '~> 6' => true,
41
- },
42
- 'smartos' => {
43
- '5.10' => true,
44
- },
45
- 'ubuntu' => {
46
- '< 16.04' => true,
47
- '> 16.04, < 18.04' => true,
48
- },
49
- 'fedora' => {
50
- '< 32' => '32',
51
- },
52
- 'freebsd' => {
53
- '= 12.0' => '12',
54
- '< 12' => true,
55
- },
56
- 'mac_os_x' => {
57
- '< 10.14' => '10.15',
58
- ' = 11.0' => '11',
59
- },
60
- 'suse' => {
61
- '~> 12.0, < 12.4' => '12',
62
- '< 12' => true,
63
- },
64
- 'opensuse' => {
65
- '< 14' => true,
66
- '~> 42.0' => true,
67
- '~> 15.0, < 15.2' => '15',
68
- },
69
- 'debian' => {
70
- '< 9' => true,
71
- '> 9.0, < 9.12' => '9',
72
- },
73
- 'centos' => {
74
- '< 6.0' => true,
75
- '~> 6.0, < 6.10' => '6',
76
- '~> 7.0, < 7.8 ' => '7',
77
- },
78
- 'redhat' => {
79
- '< 6.0' => true,
80
- '~> 6.0, < 6.10' => '6',
81
- '~> 7.0, < 7.8' => '7',
82
- },
83
- 'oracle' => {
84
- '< 6.0' => true,
85
- '~> 6.0, < 6.10' => '6',
86
- '~> 7.0, < 7.6 ' => '7',
87
- },
88
- }.freeze
89
-
90
- def_node_matcher :chefspec_definition?, <<-PATTERN
91
- (send (const (const nil? :ChefSpec) ... ) :new (hash <(pair (sym :platform) $(str ... )) (pair (sym :version) $(str ... )) ... >))
92
- PATTERN
93
-
94
- def legacy_chefspec_platform(platform, version)
95
- return false unless DEPRECATED_MAPPING.key?(platform)
96
-
97
- DEPRECATED_MAPPING[platform].each_pair do |match_string, replacement|
98
- return true if Gem::Dependency.new('', match_string.split(',')).match?('', version) &&
99
- replacement != version # we want to catch '7.0' and suggest '7', but not alert on '7'
100
- end
101
-
102
- false
103
- end
104
-
105
- def replacement_string(platform, version)
106
- DEPRECATED_MAPPING[platform].each_pair do |match_string, replacement|
107
- return replacement if Gem::Dependency.new('', match_string.split(',')).match?('', version) &&
108
- replacement != version && # we want to catch '7.0' and suggest '7', but not alert on '7'
109
- replacement != true # true means it's busted, but requires human intervention to fix
110
- end
111
-
112
- nil # we don't have a replacement os return nil
113
- end
114
-
115
- def on_send(node)
116
- chefspec_definition?(node) do |plat, ver|
117
- next unless legacy_chefspec_platform(plat.value, ver.value)
118
- add_offense(node, severity: :warning) do |corrector|
119
- if replacement = replacement_string(plat.value, ver.value) # rubocop: disable Lint/AssignmentInCondition
120
- corrector.replace(ver, "'#{replacement}'")
121
- end
122
- end
123
- end
124
- end
125
- end
126
- end
127
- end
128
- end
129
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2020-2022, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
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
+ # Use currently supported platforms in ChefSpec listed at https://github.com/chef/fauxhai/blob/main/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version values so it's always best to be less specific ie. 10 instead of 10.3
23
+ #
24
+ # @example
25
+ #
26
+ # let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '14.04') }
27
+ #
28
+ class DeprecatedChefSpecPlatform < Base
29
+ include RuboCop::Chef::CookbookHelpers
30
+ extend AutoCorrector
31
+
32
+ MSG = "Use currently supported platforms in ChefSpec listed at https://github.com/chef/fauxhai/blob/main/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version so it's always best to be less specific ie. 10 instead of 10.3"
33
+
34
+ DEPRECATED_MAPPING = {
35
+ 'amazon' => {
36
+ '2017.12' => '2',
37
+ '> 2010' => true,
38
+ },
39
+ 'aix' => {
40
+ '~> 6' => true,
41
+ },
42
+ 'smartos' => {
43
+ '5.10' => true,
44
+ },
45
+ 'ubuntu' => {
46
+ '< 16.04' => true,
47
+ '> 16.04, < 18.04' => true,
48
+ },
49
+ 'fedora' => {
50
+ '< 32' => '32',
51
+ },
52
+ 'freebsd' => {
53
+ '= 12.0' => '12',
54
+ '< 12' => true,
55
+ },
56
+ 'mac_os_x' => {
57
+ '< 10.14' => '10.15',
58
+ ' = 11.0' => '11',
59
+ },
60
+ 'suse' => {
61
+ '~> 12.0, < 12.4' => '12',
62
+ '< 12' => true,
63
+ },
64
+ 'opensuse' => {
65
+ '< 14' => true,
66
+ '~> 42.0' => true,
67
+ '~> 15.0, < 15.2' => '15',
68
+ },
69
+ 'debian' => {
70
+ '< 9' => true,
71
+ '> 9.0, < 9.12' => '9',
72
+ },
73
+ 'centos' => {
74
+ '< 6.0' => true,
75
+ '~> 6.0, < 6.10' => '6',
76
+ '~> 7.0, < 7.8 ' => '7',
77
+ },
78
+ 'redhat' => {
79
+ '< 6.0' => true,
80
+ '~> 6.0, < 6.10' => '6',
81
+ '~> 7.0, < 7.8' => '7',
82
+ },
83
+ 'oracle' => {
84
+ '< 6.0' => true,
85
+ '~> 6.0, < 6.10' => '6',
86
+ '~> 7.0, < 7.6 ' => '7',
87
+ },
88
+ }.freeze
89
+
90
+ def_node_matcher :chefspec_definition?, <<-PATTERN
91
+ (send (const (const nil? :ChefSpec) ... ) :new (hash <(pair (sym :platform) $(str ... )) (pair (sym :version) $(str ... )) ... >))
92
+ PATTERN
93
+
94
+ def legacy_chefspec_platform(platform, version)
95
+ return false unless DEPRECATED_MAPPING.key?(platform)
96
+
97
+ DEPRECATED_MAPPING[platform].each_pair do |match_string, replacement|
98
+ return true if Gem::Dependency.new('', match_string.split(',')).match?('', version) &&
99
+ replacement != version # we want to catch '7.0' and suggest '7', but not alert on '7'
100
+ end
101
+
102
+ false
103
+ end
104
+
105
+ def replacement_string(platform, version)
106
+ DEPRECATED_MAPPING[platform].each_pair do |match_string, replacement|
107
+ return replacement if Gem::Dependency.new('', match_string.split(',')).match?('', version) &&
108
+ replacement != version && # we want to catch '7.0' and suggest '7', but not alert on '7'
109
+ replacement != true # true means it's busted, but requires human intervention to fix
110
+ end
111
+
112
+ nil # we don't have a replacement os return nil
113
+ end
114
+
115
+ def on_send(node)
116
+ chefspec_definition?(node) do |plat, ver|
117
+ next unless legacy_chefspec_platform(plat.value, ver.value)
118
+ add_offense(node, severity: :warning) do |corrector|
119
+ if replacement = replacement_string(plat.value, ver.value) # rubocop: disable Lint/AssignmentInCondition
120
+ corrector.replace(ver, "'#{replacement}'")
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -1,78 +1,78 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 2019, Chef Software Inc.
4
- # Author:: Tim Smith (<tsmith84@gmail.com>)
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
- # Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later.
23
- #
24
- # @example
25
- #
26
- # ### incorrect
27
- # include Chef::Mixin::LanguageIncludeAttribute
28
- # include Chef::Mixin::RecipeDefinitionDSLCore
29
- # include Chef::Mixin::LanguageIncludeRecipe
30
- # include Chef::Mixin::Language
31
- # include Chef::DSL::Recipe::FullDSL
32
- # require 'chef/mixin/language'
33
- # require 'chef/mixin/language_include_attribute'
34
- # require 'chef/mixin/language_include_recipe'
35
- #
36
- class UsesDeprecatedMixins < Base
37
- include RangeHelp
38
- extend AutoCorrector
39
-
40
- MSG = "Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later."
41
- RESTRICT_ON_SEND = [:include, :require].freeze
42
-
43
- def_node_matcher :deprecated_mixin?, <<-PATTERN
44
- (send nil? :include (const (const (const nil? :Chef) :Mixin) { :Language :LanguageIncludeAttribute :RecipeDefinitionDSLCore :LanguageIncludeRecipe }))
45
- PATTERN
46
-
47
- def_node_matcher :deprecated_dsl?, <<-PATTERN
48
- (send nil? :include (const (const (const (const nil? :Chef) :DSL) :Recipe) :FullDSL))
49
- PATTERN
50
-
51
- def_node_matcher :dsl_mixin_require?, <<-PATTERN
52
- (send nil? :require ( str {"chef/mixin/language" "chef/mixin/language_include_attribute" "chef/mixin/language_include_recipe"}))
53
- PATTERN
54
-
55
- def on_send(node)
56
- deprecated_mixin?(node) do
57
- add_offense(node, severity: :warning) do |corrector|
58
- corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
59
- end
60
- end
61
-
62
- deprecated_dsl?(node) do
63
- add_offense(node, severity: :warning) do |corrector|
64
- corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
65
- end
66
- end
67
-
68
- dsl_mixin_require?(node) do
69
- add_offense(node, severity: :warning) do |corrector|
70
- corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end
78
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2019, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
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
+ # Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later.
23
+ #
24
+ # @example
25
+ #
26
+ # ### incorrect
27
+ # include Chef::Mixin::LanguageIncludeAttribute
28
+ # include Chef::Mixin::RecipeDefinitionDSLCore
29
+ # include Chef::Mixin::LanguageIncludeRecipe
30
+ # include Chef::Mixin::Language
31
+ # include Chef::DSL::Recipe::FullDSL
32
+ # require 'chef/mixin/language'
33
+ # require 'chef/mixin/language_include_attribute'
34
+ # require 'chef/mixin/language_include_recipe'
35
+ #
36
+ class UsesDeprecatedMixins < Base
37
+ include RangeHelp
38
+ extend AutoCorrector
39
+
40
+ MSG = "Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later."
41
+ RESTRICT_ON_SEND = [:include, :require].freeze
42
+
43
+ def_node_matcher :deprecated_mixin?, <<-PATTERN
44
+ (send nil? :include (const (const (const nil? :Chef) :Mixin) { :Language :LanguageIncludeAttribute :RecipeDefinitionDSLCore :LanguageIncludeRecipe }))
45
+ PATTERN
46
+
47
+ def_node_matcher :deprecated_dsl?, <<-PATTERN
48
+ (send nil? :include (const (const (const (const nil? :Chef) :DSL) :Recipe) :FullDSL))
49
+ PATTERN
50
+
51
+ def_node_matcher :dsl_mixin_require?, <<-PATTERN
52
+ (send nil? :require ( str {"chef/mixin/language" "chef/mixin/language_include_attribute" "chef/mixin/language_include_recipe"}))
53
+ PATTERN
54
+
55
+ def on_send(node)
56
+ deprecated_mixin?(node) do
57
+ add_offense(node, severity: :warning) do |corrector|
58
+ corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
59
+ end
60
+ end
61
+
62
+ deprecated_dsl?(node) do
63
+ add_offense(node, severity: :warning) do |corrector|
64
+ corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
65
+ end
66
+ end
67
+
68
+ dsl_mixin_require?(node) do
69
+ add_offense(node, severity: :warning) do |corrector|
70
+ corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -1,61 +1,61 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 2019-2020, Chef Software Inc.
4
- # Author:: Tim Smith (<tsmith84@gmail.com>)
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
- # Use `provider_for_action` or provides instead of the deprecated `Chef::Platform` methods in resources, which were removed in Chef Infra Client 13.
23
- #
24
- # @example
25
- #
26
- # ### incorrect
27
- # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
28
- # provider = Chef::Platform.provider_for_resource(resource, :create)
29
- #
30
- # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
31
- # provider = Chef::Platform.find_provider("ubuntu", "16.04", resource)
32
- #
33
- # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
34
- # provider = Chef::Platform.find_provider_for_node(node, resource)
35
- #
36
- # Chef::Platform.set :platform => :mac_os_x, :resource => :package, :provider => Chef::Provider::Package::Homebrew
37
- #
38
- # ### correct
39
- # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
40
- # provider = resource.provider_for_action(:create)
41
- #
42
- # # provides :package, platform_family: 'mac_os_x'
43
-
44
- class DeprecatedPlatformMethods < Base
45
- MSG = 'Use provider_for_action or provides instead of the deprecated Chef::Platform methods in resources, which were removed in Chef Infra Client 13.'
46
- RESTRICT_ON_SEND = [:provider_for_resource, :find_provider, :find_provider_for_node, :set].freeze
47
-
48
- def_node_matcher :platform_method?, <<-PATTERN
49
- (send (const (const nil? :Chef) :Platform) {:provider_for_resource :find_provider :find_provider_for_node :set} ... )
50
- PATTERN
51
-
52
- def on_send(node)
53
- platform_method?(node) do
54
- add_offense(node, severity: :warning)
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2019-2020, Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith84@gmail.com>)
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
+ # Use `provider_for_action` or provides instead of the deprecated `Chef::Platform` methods in resources, which were removed in Chef Infra Client 13.
23
+ #
24
+ # @example
25
+ #
26
+ # ### incorrect
27
+ # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
28
+ # provider = Chef::Platform.provider_for_resource(resource, :create)
29
+ #
30
+ # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
31
+ # provider = Chef::Platform.find_provider("ubuntu", "16.04", resource)
32
+ #
33
+ # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
34
+ # provider = Chef::Platform.find_provider_for_node(node, resource)
35
+ #
36
+ # Chef::Platform.set :platform => :mac_os_x, :resource => :package, :provider => Chef::Provider::Package::Homebrew
37
+ #
38
+ # ### correct
39
+ # resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
40
+ # provider = resource.provider_for_action(:create)
41
+ #
42
+ # # provides :package, platform_family: 'mac_os_x'
43
+
44
+ class DeprecatedPlatformMethods < Base
45
+ MSG = 'Use provider_for_action or provides instead of the deprecated Chef::Platform methods in resources, which were removed in Chef Infra Client 13.'
46
+ RESTRICT_ON_SEND = [:provider_for_resource, :find_provider, :find_provider_for_node, :set].freeze
47
+
48
+ def_node_matcher :platform_method?, <<-PATTERN
49
+ (send (const (const nil? :Chef) :Platform) {:provider_for_resource :find_provider :find_provider_for_node :set} ... )
50
+ PATTERN
51
+
52
+ def on_send(node)
53
+ platform_method?(node) do
54
+ add_offense(node, severity: :warning)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end