cookstyle 8.6.4 → 8.7.6

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 (285) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +25 -25
  3. data/LICENSE +201 -201
  4. data/bin/cookstyle +31 -31
  5. data/bin/cookstyle-profile +31 -31
  6. data/config/chefstyle.yml +956 -920
  7. data/config/cookstyle.yml +3347 -3311
  8. data/config/default.yml +2 -2
  9. data/cookstyle.gemspec +30 -30
  10. data/lib/cookstyle/chefstyle.rb +5 -5
  11. data/lib/cookstyle/version.rb +8 -5
  12. data/lib/cookstyle.rb +49 -48
  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/empty_resource_guard.rb +104 -104
  23. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +77 -77
  24. data/lib/rubocop/cop/chef/correctness/invalid_cookbook_name.rb +47 -47
  25. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +48 -48
  26. data/lib/rubocop/cop/chef/correctness/invalid_notification_resource.rb +59 -59
  27. data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +55 -55
  28. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +72 -72
  29. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +70 -70
  30. data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +57 -57
  31. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +89 -89
  32. data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +70 -70
  33. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +70 -70
  34. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +69 -69
  35. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +48 -48
  36. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +53 -53
  37. data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +67 -67
  38. data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +67 -67
  39. data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +67 -67
  40. data/lib/rubocop/cop/chef/correctness/metadata_malformed_version.rb +58 -58
  41. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +54 -54
  42. data/lib/rubocop/cop/chef/correctness/metadata_missing_version.rb +51 -51
  43. data/lib/rubocop/cop/chef/correctness/node_normal.rb +53 -53
  44. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +53 -53
  45. data/lib/rubocop/cop/chef/correctness/node_save.rb +46 -46
  46. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +64 -64
  47. data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -48
  48. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +46 -46
  49. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +54 -54
  50. data/lib/rubocop/cop/chef/correctness/powershell_file_exists.rb +50 -50
  51. data/lib/rubocop/cop/chef/correctness/property_without_type.rb +59 -59
  52. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +51 -51
  53. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +50 -50
  54. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +56 -56
  55. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +52 -52
  56. data/lib/rubocop/cop/chef/correctness/service_resource.rb +56 -56
  57. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +52 -52
  58. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +59 -59
  59. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +57 -57
  60. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +52 -52
  61. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +55 -55
  62. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +57 -57
  63. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +98 -98
  64. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +83 -83
  65. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +55 -55
  66. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +55 -55
  67. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +56 -56
  68. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +39 -39
  69. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +49 -49
  70. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +61 -61
  71. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +56 -56
  72. data/lib/rubocop/cop/chef/deprecation/delivery.rb +48 -48
  73. data/lib/rubocop/cop/chef/deprecation/depends_chef_nginx_cookbook.rb +54 -54
  74. data/lib/rubocop/cop/chef/deprecation/depends_chef_reporting_cookbook.rb +51 -51
  75. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +54 -54
  76. data/lib/rubocop/cop/chef/deprecation/depends_omnibus_updater_cookbook.rb +54 -54
  77. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +50 -50
  78. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +48 -48
  79. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +129 -129
  80. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +78 -78
  81. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +61 -61
  82. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +64 -64
  83. data/lib/rubocop/cop/chef/deprecation/deprecated_sudo_actions.rb +65 -65
  84. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +42 -42
  85. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -67
  86. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +69 -69
  87. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +42 -42
  88. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +49 -49
  89. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +51 -51
  90. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +42 -42
  91. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +50 -50
  92. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +66 -66
  93. data/lib/rubocop/cop/chef/deprecation/foodcritic_file.rb +41 -41
  94. data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -43
  95. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +136 -136
  96. data/lib/rubocop/cop/chef/deprecation/hwrp_without_unified_mode_true.rb +86 -86
  97. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +59 -59
  98. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +56 -56
  99. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +91 -91
  100. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +53 -53
  101. data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -42
  102. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +46 -46
  103. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +63 -63
  104. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +60 -60
  105. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +60 -60
  106. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +65 -65
  107. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +80 -80
  108. data/lib/rubocop/cop/chef/deprecation/node_set.rb +54 -54
  109. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +54 -54
  110. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +70 -70
  111. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +67 -67
  112. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +61 -61
  113. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +63 -63
  114. data/lib/rubocop/cop/chef/deprecation/policyfile_community_source.rb +53 -53
  115. data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +59 -59
  116. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +53 -53
  117. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +48 -48
  118. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +46 -46
  119. data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +84 -84
  120. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +40 -40
  121. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +51 -51
  122. data/lib/rubocop/cop/chef/deprecation/resource_without_unified_mode_true.rb +87 -87
  123. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +56 -56
  124. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +62 -62
  125. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +63 -63
  126. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +134 -134
  127. data/lib/rubocop/cop/chef/deprecation/use_automatic_resource_name.rb +52 -52
  128. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +57 -57
  129. data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -47
  130. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +71 -71
  131. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +57 -57
  132. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +58 -58
  133. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +60 -60
  134. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +83 -83
  135. data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +71 -71
  136. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +51 -51
  137. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +53 -53
  138. data/lib/rubocop/cop/chef/effortless/berksfile.rb +39 -39
  139. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +87 -87
  140. data/lib/rubocop/cop/chef/effortless/data_bags.rb +40 -40
  141. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +47 -47
  142. data/lib/rubocop/cop/chef/effortless/node_environment.rb +45 -45
  143. data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +44 -44
  144. data/lib/rubocop/cop/chef/effortless/node_roles.rb +45 -45
  145. data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +43 -43
  146. data/lib/rubocop/cop/chef/effortless/search_used.rb +40 -40
  147. data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +57 -57
  148. data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +77 -77
  149. data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +54 -54
  150. data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +70 -70
  151. data/lib/rubocop/cop/chef/modernize/build_essential.rb +55 -55
  152. data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +60 -60
  153. data/lib/rubocop/cop/chef/modernize/chef_15_resources.rb +57 -57
  154. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +63 -63
  155. data/lib/rubocop/cop/chef/modernize/class_eval_action_class.rb +63 -63
  156. data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +53 -53
  157. data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +55 -55
  158. data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +121 -121
  159. data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +50 -50
  160. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +59 -59
  161. data/lib/rubocop/cop/chef/modernize/declare_action_class.rb +54 -54
  162. data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +74 -74
  163. data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +54 -54
  164. data/lib/rubocop/cop/chef/modernize/definitions.rb +36 -36
  165. data/lib/rubocop/cop/chef/modernize/depends_chef_vault_cookbook.rb +54 -54
  166. data/lib/rubocop/cop/chef/modernize/depends_chocolatey_cookbooks.rb +55 -55
  167. data/lib/rubocop/cop/chef/modernize/depends_kernel_module_cookbook.rb +54 -54
  168. data/lib/rubocop/cop/chef/modernize/depends_locale_cookbook.rb +54 -54
  169. data/lib/rubocop/cop/chef/modernize/depends_openssl_cookbook.rb +54 -54
  170. data/lib/rubocop/cop/chef/modernize/depends_timezone_lwrp_cookbook.rb +54 -54
  171. data/lib/rubocop/cop/chef/modernize/depends_windows_firewall_cookbook.rb +54 -54
  172. data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +54 -54
  173. data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +55 -55
  174. data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +52 -52
  175. data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +81 -81
  176. data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +67 -67
  177. data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +76 -76
  178. data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +70 -70
  179. data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +83 -83
  180. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +46 -46
  181. data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +48 -48
  182. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +83 -83
  183. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +70 -70
  184. data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +58 -58
  185. data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +51 -51
  186. data/lib/rubocop/cop/chef/modernize/node_init_package.rb +89 -89
  187. data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +57 -57
  188. data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +47 -47
  189. data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +54 -54
  190. data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +60 -60
  191. data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +51 -51
  192. data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +50 -50
  193. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +68 -68
  194. data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +53 -53
  195. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +56 -56
  196. data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +56 -56
  197. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +68 -68
  198. data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +63 -63
  199. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +49 -49
  200. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +66 -66
  201. data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +94 -94
  202. data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +77 -77
  203. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +63 -63
  204. data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +52 -52
  205. data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +53 -53
  206. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +46 -46
  207. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +60 -60
  208. data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +58 -58
  209. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +63 -63
  210. data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +55 -55
  211. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +51 -51
  212. data/lib/rubocop/cop/chef/modernize/use_chef_language_cloud_helpers.rb +93 -93
  213. data/lib/rubocop/cop/chef/modernize/use_chef_language_env_helpers.rb +69 -69
  214. data/lib/rubocop/cop/chef/modernize/use_chef_language_systemd_helper.rb +60 -60
  215. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +113 -113
  216. data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +60 -60
  217. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +58 -58
  218. data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +52 -52
  219. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +92 -92
  220. data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +46 -46
  221. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +59 -59
  222. data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +60 -60
  223. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +65 -65
  224. data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +60 -60
  225. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +52 -52
  226. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +46 -46
  227. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +60 -60
  228. data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +68 -68
  229. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +46 -46
  230. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +46 -46
  231. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +58 -58
  232. data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +81 -81
  233. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +65 -65
  234. data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +59 -59
  235. data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +61 -61
  236. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +46 -46
  237. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +47 -47
  238. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +46 -46
  239. data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +52 -52
  240. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +50 -50
  241. data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +64 -64
  242. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +46 -46
  243. data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +60 -60
  244. data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +67 -67
  245. data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +116 -116
  246. data/lib/rubocop/cop/chef/security/ssh_private_key.rb +49 -49
  247. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +51 -51
  248. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +47 -47
  249. data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +55 -55
  250. data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +52 -52
  251. data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +60 -60
  252. data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +62 -62
  253. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +819 -819
  254. data/lib/rubocop/cop/chef/style/attribute_keys.rb +94 -94
  255. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +49 -49
  256. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +42 -42
  257. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +101 -101
  258. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +50 -50
  259. data/lib/rubocop/cop/chef/style/comments_format.rb +71 -71
  260. data/lib/rubocop/cop/chef/style/file_mode.rb +86 -86
  261. data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +59 -59
  262. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +58 -58
  263. data/lib/rubocop/cop/chef/style/negating_only_if.rb +69 -69
  264. data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +70 -70
  265. data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +89 -89
  266. data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +53 -53
  267. data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +103 -103
  268. data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +100 -100
  269. data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +86 -86
  270. data/lib/rubocop/cop/chefstyle/ruby/gemspec_license.rb +55 -55
  271. data/lib/rubocop/cop/chefstyle/ruby/gemspec_require_rubygems.rb +46 -46
  272. data/lib/rubocop/cop/chefstyle/ruby/legacy_powershell_out_methods.rb +36 -36
  273. data/lib/rubocop/cop/chefstyle/ruby/require_net_https.rb +54 -54
  274. data/lib/rubocop/cop/chefstyle/ruby/unless_defined_require.rb +122 -122
  275. data/lib/rubocop/cop/inspec/deprecation/attribute_default.rb +53 -53
  276. data/lib/rubocop/cop/inspec/deprecation/attribute_helper.rb +47 -47
  277. data/lib/rubocop/cop/target_chef_version.rb +22 -22
  278. data/lib/rubocop/monkey_patches/allow_invalid_ruby.rb +28 -28
  279. data/lib/rubocop/monkey_patches/base.rb +11 -11
  280. data/lib/rubocop/monkey_patches/comment_config.rb +20 -0
  281. data/lib/rubocop/monkey_patches/config.rb +15 -15
  282. data/lib/rubocop/monkey_patches/directive_comment.rb +12 -12
  283. data/lib/rubocop/monkey_patches/registry_cop.rb +13 -15
  284. data/lib/rubocop/monkey_patches/team.rb +25 -25
  285. metadata +10 -5
@@ -1,55 +1,55 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 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
- # Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/main/chef-utils#getting-started
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # vagrant_key?
28
- # vagrant_domain?
29
- # vagrant_user?
30
- # require_chef_gem
31
- # best_ip_for(node)
32
- # nexus?
33
- # ios_xr?
34
- # ruby_20?
35
- # ruby_19?
36
- # includes_recipe?('foo::bar')
37
- # wrlinux?
38
- # dev_null
39
- # nexentacore_platform?
40
- # opensolaris_platform?
41
- # nexentacore?
42
- # opensolaris?
43
- #
44
- class ChefSugarHelpers < Base
45
- MSG = 'Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/main/chef-utils#getting-started'
46
- RESTRICT_ON_SEND = [:vagrant_key?, :vagrant_domain?, :vagrant_user?, :require_chef_gem, :best_ip_for, :nexus?, :ios_xr?, :ruby_20?, :ruby_19?, :includes_recipe?, :wrlinux?, :dev_null, :nexentacore_platform?, :opensolaris_platform?, :nexentacore?, :opensolaris?].freeze
47
-
48
- def on_send(node)
49
- add_offense(node, severity: :refactor)
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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
+ # Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/main/chef-utils#getting-started
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # vagrant_key?
28
+ # vagrant_domain?
29
+ # vagrant_user?
30
+ # require_chef_gem
31
+ # best_ip_for(node)
32
+ # nexus?
33
+ # ios_xr?
34
+ # ruby_20?
35
+ # ruby_19?
36
+ # includes_recipe?('foo::bar')
37
+ # wrlinux?
38
+ # dev_null
39
+ # nexentacore_platform?
40
+ # opensolaris_platform?
41
+ # nexentacore?
42
+ # opensolaris?
43
+ #
44
+ class ChefSugarHelpers < Base
45
+ MSG = 'Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/main/chef-utils#getting-started'
46
+ RESTRICT_ON_SEND = [:vagrant_key?, :vagrant_domain?, :vagrant_user?, :require_chef_gem, :best_ip_for, :nexus?, :ios_xr?, :ruby_20?, :ruby_19?, :includes_recipe?, :wrlinux?, :dev_null, :nexentacore_platform?, :opensolaris_platform?, :nexentacore?, :opensolaris?].freeze
47
+
48
+ def on_send(node)
49
+ add_offense(node, severity: :refactor)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,55 +1,55 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 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 `platform?('windows')` instead of the legacy `Chef::Platform.windows?` helper
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # Chef::Platform.windows?
28
- #
29
- # # good
30
- # platform?('windows')
31
- # platform_family?('windows')
32
- #
33
- class ChefWindowsPlatformHelper < Base
34
- extend AutoCorrector
35
- MSG = "Use `platform?('windows')` instead of the legacy `Chef::Platform.windows?` helper."
36
- RESTRICT_ON_SEND = [:windows?].freeze
37
-
38
- def_node_matcher :chef_platform_windows?, <<-PATTERN
39
- (send
40
- (const
41
- (const nil? :Chef) :Platform) :windows?)
42
- PATTERN
43
-
44
- def on_send(node)
45
- chef_platform_windows?(node) do
46
- add_offense(node, severity: :warning) do |corrector|
47
- corrector.replace(node, "platform?('windows')")
48
- end
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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 `platform?('windows')` instead of the legacy `Chef::Platform.windows?` helper
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # Chef::Platform.windows?
28
+ #
29
+ # # good
30
+ # platform?('windows')
31
+ # platform_family?('windows')
32
+ #
33
+ class ChefWindowsPlatformHelper < Base
34
+ extend AutoCorrector
35
+ MSG = "Use `platform?('windows')` instead of the legacy `Chef::Platform.windows?` helper."
36
+ RESTRICT_ON_SEND = [:windows?].freeze
37
+
38
+ def_node_matcher :chef_platform_windows?, <<-PATTERN
39
+ (send
40
+ (const
41
+ (const nil? :Chef) :Platform) :windows?)
42
+ PATTERN
43
+
44
+ def on_send(node)
45
+ chef_platform_windows?(node) do
46
+ add_offense(node, severity: :warning) do |corrector|
47
+ corrector.replace(node, "platform?('windows')")
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,56 +1,56 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 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
- # Chef Workstation 0.8 and later renamed the `ChefDK` module used when writing custom cookbook generators from `ChefDK` to `ChefCLI`. For compatibility with the latest Chef Workstation releases you'll need to reference the new class names.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # ChefDK::CLI
28
- # ChefDK::Generator::TemplateHelper
29
- # module ChefDK
30
- # # some additional code
31
- # end
32
- #
33
- # # good
34
- # ChefCLI::CLI
35
- # ChefCLI::Generator::TemplateHelper
36
- # module ChefCLI
37
- # # some additional code
38
- # end
39
- #
40
- class ChefDKGenerators < Base
41
- extend AutoCorrector
42
- MSG = 'When writing cookbook generators use the ChefCLI module instead of the ChefDK module which was removed in Chef Workstation 0.8 and later.'
43
-
44
- def on_const(node)
45
- # We want to catch calls like ChefDK::CLI.whatever or places where classes are defined in the ChefDK module
46
- return unless node.const_name == 'ChefDK' && (node.parent&.module_type? || node.parent&.const_type?)
47
-
48
- add_offense(node, severity: :warning) do |corrector|
49
- corrector.replace(node, node.source.gsub('ChefDK', 'ChefCLI'))
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
56
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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
+ # Chef Workstation 0.8 and later renamed the `ChefDK` module used when writing custom cookbook generators from `ChefDK` to `ChefCLI`. For compatibility with the latest Chef Workstation releases you'll need to reference the new class names.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # ChefDK::CLI
28
+ # ChefDK::Generator::TemplateHelper
29
+ # module ChefDK
30
+ # # some additional code
31
+ # end
32
+ #
33
+ # # good
34
+ # ChefCLI::CLI
35
+ # ChefCLI::Generator::TemplateHelper
36
+ # module ChefCLI
37
+ # # some additional code
38
+ # end
39
+ #
40
+ class ChefDKGenerators < Base
41
+ extend AutoCorrector
42
+ MSG = 'When writing cookbook generators use the ChefCLI module instead of the ChefDK module which was removed in Chef Workstation 0.8 and later.'
43
+
44
+ def on_const(node)
45
+ # We want to catch calls like ChefDK::CLI.whatever or places where classes are defined in the ChefDK module
46
+ return unless node.const_name == 'ChefDK' && (node.parent&.module_type? || node.parent&.const_type?)
47
+
48
+ add_offense(node, severity: :warning) do |corrector|
49
+ corrector.replace(node, node.source.gsub('ChefDK', 'ChefCLI'))
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,39 +1,39 @@
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
- # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead. If the Policyfiles model is not compatible with your workflow you may find Berkshelf offers a more similar, and still supported, experience to Librarian-Chef.
23
- #
24
- class Cheffile < Base
25
- include RangeHelp
26
-
27
- MSG = 'The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead.'
28
-
29
- def on_new_investigation
30
- # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
31
- range = source_range(processed_source.buffer, 1, 0)
32
-
33
- add_offense(range, severity: :warning)
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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
+ # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead. If the Policyfiles model is not compatible with your workflow you may find Berkshelf offers a more similar, and still supported, experience to Librarian-Chef.
23
+ #
24
+ class Cheffile < Base
25
+ include RangeHelp
26
+
27
+ MSG = 'The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead.'
28
+
29
+ def on_new_investigation
30
+ # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
31
+ range = source_range(processed_source.buffer, 1, 0)
32
+
33
+ add_offense(range, severity: :warning)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,49 +1,49 @@
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 the deprecated ChefSpec Coverage report functionality in your specs. This feature has been removed as coverage reports encourage cookbook authors to write ineffective specs. Focus on testing your logic instead of achieving 100% code coverage.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- #
28
- # at_exit { ChefSpec::Coverage.report! }
29
- #
30
- class ChefSpecCoverageReport < Base
31
- extend AutoCorrector
32
- MSG = "Don't use the deprecated ChefSpec coverage report functionality in your specs."
33
-
34
- def_node_matcher :coverage_reporter?, <<-PATTERN
35
- (block (send nil? :at_exit ) (args) (send (const (const nil? :ChefSpec) :Coverage) :report!))
36
- PATTERN
37
-
38
- def on_block(node)
39
- coverage_reporter?(node) do
40
- add_offense(node, severity: :warning) do |corrector|
41
- corrector.remove(node)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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 the deprecated ChefSpec Coverage report functionality in your specs. This feature has been removed as coverage reports encourage cookbook authors to write ineffective specs. Focus on testing your logic instead of achieving 100% code coverage.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ #
28
+ # at_exit { ChefSpec::Coverage.report! }
29
+ #
30
+ class ChefSpecCoverageReport < Base
31
+ extend AutoCorrector
32
+ MSG = "Don't use the deprecated ChefSpec coverage report functionality in your specs."
33
+
34
+ def_node_matcher :coverage_reporter?, <<-PATTERN
35
+ (block (send nil? :at_exit ) (args) (send (const (const nil? :ChefSpec) :Coverage) :report!))
36
+ PATTERN
37
+
38
+ def on_block(node)
39
+ coverage_reporter?(node) do
40
+ add_offense(node, severity: :warning) do |corrector|
41
+ corrector.remove(node)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,61 +1,61 @@
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
- # Use `ChefSpec::SoloRunner` or `ChefSpec::ServerRunner` instead of the deprecated `ChefSpec::Runner`. These new runners were introduced in ChefSpec 4.1 (Oct 2014).
23
- #
24
- # @example
25
- #
26
- # # bad
27
- #
28
- # describe 'foo::default' do
29
- # subject { ChefSpec::Runner.new.converge(described_recipe) }
30
- #
31
- # # some spec code
32
- # end
33
- #
34
- # # good
35
- #
36
- # describe 'foo::default' do
37
- # subject { ChefSpec::ServerRunner.new.converge(described_recipe) }
38
- #
39
- # # some spec code
40
- # end
41
- #
42
- class ChefSpecLegacyRunner < Base
43
- extend AutoCorrector
44
- MSG = 'Use ChefSpec::SoloRunner or ChefSpec::ServerRunner instead of the deprecated ChefSpec::Runner.'
45
-
46
- def_node_matcher :chefspec_runner?, <<-PATTERN
47
- (const (const nil? :ChefSpec) :Runner)
48
- PATTERN
49
-
50
- def on_const(node)
51
- chefspec_runner?(node) do
52
- add_offense(node, severity: :warning) do |corrector|
53
- corrector.replace(node, 'ChefSpec::ServerRunner')
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) 2016-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
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 `ChefSpec::SoloRunner` or `ChefSpec::ServerRunner` instead of the deprecated `ChefSpec::Runner`. These new runners were introduced in ChefSpec 4.1 (Oct 2014).
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ #
28
+ # describe 'foo::default' do
29
+ # subject { ChefSpec::Runner.new.converge(described_recipe) }
30
+ #
31
+ # # some spec code
32
+ # end
33
+ #
34
+ # # good
35
+ #
36
+ # describe 'foo::default' do
37
+ # subject { ChefSpec::ServerRunner.new.converge(described_recipe) }
38
+ #
39
+ # # some spec code
40
+ # end
41
+ #
42
+ class ChefSpecLegacyRunner < Base
43
+ extend AutoCorrector
44
+ MSG = 'Use ChefSpec::SoloRunner or ChefSpec::ServerRunner instead of the deprecated ChefSpec::Runner.'
45
+
46
+ def_node_matcher :chefspec_runner?, <<-PATTERN
47
+ (const (const nil? :ChefSpec) :Runner)
48
+ PATTERN
49
+
50
+ def on_const(node)
51
+ chefspec_runner?(node) do
52
+ add_offense(node, severity: :warning) do |corrector|
53
+ corrector.replace(node, 'ChefSpec::ServerRunner')
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end