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,76 +1,76 @@
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 Modernize
22
- # Chef Infra Client 15.5 and later include a chef_sleep resource that should be used to sleep between executing resources if necessary instead of using the bash or execute resources to run the sleep command.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # execute "sleep 60" do
28
- # command "sleep 60"
29
- # action :run
30
- # end
31
- #
32
- # bash 'sleep' do
33
- # user 'root'
34
- # cwd '/tmp'
35
- # code 'sleep 60'
36
- # end
37
- #
38
- # # good
39
- # chef_sleep '60'
40
- #
41
- class ExecuteSleep < Base
42
- include RuboCop::Chef::CookbookHelpers
43
- extend TargetChefVersion
44
-
45
- minimum_target_chef_version '15.5'
46
-
47
- MSG = 'Chef Infra Client 15.5 and later include a chef_sleep resource that should be used to sleep between executing resources if necessary instead of using the bash or execute resources to run the sleep command.'
48
- RESTRICT_ON_SEND = [:execute].freeze
49
-
50
- # non block execute resources
51
- def on_send(node)
52
- # use a regex on source instead of .value in case there's string interpolation which adds a complex dstr type
53
- # with a nested string and a begin. Source allows us to avoid a lot of defensive programming here
54
- return unless node&.arguments.first&.source&.match?(/^("|')sleep/)
55
- add_offense(node, severity: :refactor)
56
- end
57
-
58
- # block execute resources
59
- def on_block(node)
60
- match_property_in_resource?(:execute, 'command', node) do |code_property|
61
- property_data = method_arg_ast_to_string(code_property)
62
- next unless property_data && property_data.match?(/^sleep/i)
63
- add_offense(node, severity: :refactor)
64
- end
65
-
66
- match_property_in_resource?(:bash, 'code', node) do |code_property|
67
- property_data = method_arg_ast_to_string(code_property)
68
- next unless property_data && property_data.match?(/^sleep/i)
69
- add_offense(node, severity: :refactor)
70
- end
71
- end
72
- end
73
- end
74
- end
75
- end
76
- 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 Modernize
22
+ # Chef Infra Client 15.5 and later include a chef_sleep resource that should be used to sleep between executing resources if necessary instead of using the bash or execute resources to run the sleep command.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # execute "sleep 60" do
28
+ # command "sleep 60"
29
+ # action :run
30
+ # end
31
+ #
32
+ # bash 'sleep' do
33
+ # user 'root'
34
+ # cwd '/tmp'
35
+ # code 'sleep 60'
36
+ # end
37
+ #
38
+ # # good
39
+ # chef_sleep '60'
40
+ #
41
+ class ExecuteSleep < Base
42
+ include RuboCop::Chef::CookbookHelpers
43
+ extend TargetChefVersion
44
+
45
+ minimum_target_chef_version '15.5'
46
+
47
+ MSG = 'Chef Infra Client 15.5 and later include a chef_sleep resource that should be used to sleep between executing resources if necessary instead of using the bash or execute resources to run the sleep command.'
48
+ RESTRICT_ON_SEND = [:execute].freeze
49
+
50
+ # non block execute resources
51
+ def on_send(node)
52
+ # use a regex on source instead of .value in case there's string interpolation which adds a complex dstr type
53
+ # with a nested string and a begin. Source allows us to avoid a lot of defensive programming here
54
+ return unless node&.arguments.first&.source&.match?(/^("|')sleep/)
55
+ add_offense(node, severity: :refactor)
56
+ end
57
+
58
+ # block execute resources
59
+ def on_block(node)
60
+ match_property_in_resource?(:execute, 'command', node) do |code_property|
61
+ property_data = method_arg_ast_to_string(code_property)
62
+ next unless property_data && property_data.match?(/^sleep/i)
63
+ add_offense(node, severity: :refactor)
64
+ end
65
+
66
+ match_property_in_resource?(:bash, 'code', node) do |code_property|
67
+ property_data = method_arg_ast_to_string(code_property)
68
+ next unless property_data && property_data.match?(/^sleep/i)
69
+ add_offense(node, severity: :refactor)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -1,70 +1,70 @@
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 Modernize
22
- # Chef Infra Client 14.0 and later includes a sysctl resource that should be used to idempotently load sysctl values instead of templating files and using execute to load them.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # file '/etc/sysctl.d/ipv4.conf' do
28
- # notifies :run, 'execute[sysctl -p /etc/sysctl.d/ipv4.conf]', :immediately
29
- # content '9000 65500'
30
- # end
31
- #
32
- # execute 'sysctl -p /etc/sysctl.d/ipv4.conf' do
33
- # action :nothing
34
- # end
35
- #
36
- # # good
37
- # sysctl 'net.ipv4.ip_local_port_range' do
38
- # value '9000 65500'
39
- # end
40
- #
41
- class ExecuteSysctl < Base
42
- include RuboCop::Chef::CookbookHelpers
43
- extend TargetChefVersion
44
-
45
- minimum_target_chef_version '14.0'
46
-
47
- MSG = 'Chef Infra Client 14.0 and later includes a sysctl resource that should be used to idempotently load sysctl values instead of templating files and using execute to load them.'
48
- RESTRICT_ON_SEND = [:execute].freeze
49
-
50
- # non block execute resources
51
- def on_send(node)
52
- # use a regex on source instead of .value in case there's string interpolation which adds a complex dstr type
53
- # with a nested string and a begin. Source allows us to avoid a lot of defensive programming here
54
- return unless node&.arguments.first&.source&.match?(/^("|')sysctl -p/)
55
- add_offense(node, severity: :refactor)
56
- end
57
-
58
- # block execute resources
59
- def on_block(node)
60
- match_property_in_resource?(:execute, 'command', node) do |code_property|
61
- property_data = method_arg_ast_to_string(code_property)
62
- return unless property_data && property_data.match?(%r{^(/sbin/)?sysctl -p}i)
63
- add_offense(node, severity: :refactor)
64
- end
65
- end
66
- end
67
- end
68
- end
69
- end
70
- 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 Modernize
22
+ # Chef Infra Client 14.0 and later includes a sysctl resource that should be used to idempotently load sysctl values instead of templating files and using execute to load them.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # file '/etc/sysctl.d/ipv4.conf' do
28
+ # notifies :run, 'execute[sysctl -p /etc/sysctl.d/ipv4.conf]', :immediately
29
+ # content '9000 65500'
30
+ # end
31
+ #
32
+ # execute 'sysctl -p /etc/sysctl.d/ipv4.conf' do
33
+ # action :nothing
34
+ # end
35
+ #
36
+ # # good
37
+ # sysctl 'net.ipv4.ip_local_port_range' do
38
+ # value '9000 65500'
39
+ # end
40
+ #
41
+ class ExecuteSysctl < Base
42
+ include RuboCop::Chef::CookbookHelpers
43
+ extend TargetChefVersion
44
+
45
+ minimum_target_chef_version '14.0'
46
+
47
+ MSG = 'Chef Infra Client 14.0 and later includes a sysctl resource that should be used to idempotently load sysctl values instead of templating files and using execute to load them.'
48
+ RESTRICT_ON_SEND = [:execute].freeze
49
+
50
+ # non block execute resources
51
+ def on_send(node)
52
+ # use a regex on source instead of .value in case there's string interpolation which adds a complex dstr type
53
+ # with a nested string and a begin. Source allows us to avoid a lot of defensive programming here
54
+ return unless node&.arguments.first&.source&.match?(/^("|')sysctl -p/)
55
+ add_offense(node, severity: :refactor)
56
+ end
57
+
58
+ # block execute resources
59
+ def on_block(node)
60
+ match_property_in_resource?(:execute, 'command', node) do |code_property|
61
+ property_data = method_arg_ast_to_string(code_property)
62
+ return unless property_data && property_data.match?(%r{^(/sbin/)?sysctl -p}i)
63
+ add_offense(node, severity: :refactor)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -1,83 +1,83 @@
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 Modernize
22
- # Instead of using the execute or powershell_script resources to run the `tzutil` command, use Chef Infra Client's built-in timezone resource which is available in Chef Infra Client 14.6 and later.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # execute 'set tz' do
28
- # command 'tzutil.exe /s UTC'
29
- # end
30
- #
31
- # execute 'tzutil /s UTC'
32
- #
33
- # powershell_script 'set windows timezone' do
34
- # code "tzutil.exe /s UTC"
35
- # not_if { shell_out('tzutil.exe /g').stdout.include?('UTC') }
36
- # end
37
- #
38
- # # good
39
- # timezone 'UTC'
40
- #
41
- class ExecuteTzUtil < Base
42
- include RuboCop::Chef::CookbookHelpers
43
- extend TargetChefVersion
44
-
45
- minimum_target_chef_version '14.6'
46
-
47
- MSG = 'Use the timezone resource included in Chef Infra Client 14.6+ instead of shelling out to tzutil'
48
- RESTRICT_ON_SEND = [:execute].freeze
49
-
50
- def_node_matcher :execute_resource?, <<-PATTERN
51
- (send nil? :execute $str)
52
- PATTERN
53
-
54
- def on_send(node)
55
- execute_resource?(node) do
56
- return unless node.arguments.first.value.match?(/^tzutil/i)
57
- add_offense(node, severity: :refactor)
58
- end
59
- end
60
-
61
- def on_block(node)
62
- match_property_in_resource?(:execute, 'command', node) do |code_property|
63
- next unless calls_tzutil?(code_property)
64
- add_offense(node, severity: :refactor)
65
- end
66
-
67
- match_property_in_resource?(:powershell_script, 'code', node) do |code_property|
68
- next unless calls_tzutil?(code_property)
69
- add_offense(node, severity: :refactor)
70
- end
71
- end
72
-
73
- private
74
-
75
- def calls_tzutil?(ast_obj)
76
- property_data = method_arg_ast_to_string(ast_obj)
77
- true if property_data && property_data.match?(/^tzutil/i)
78
- end
79
- end
80
- end
81
- end
82
- end
83
- 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 Modernize
22
+ # Instead of using the execute or powershell_script resources to run the `tzutil` command, use Chef Infra Client's built-in timezone resource which is available in Chef Infra Client 14.6 and later.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # execute 'set tz' do
28
+ # command 'tzutil.exe /s UTC'
29
+ # end
30
+ #
31
+ # execute 'tzutil /s UTC'
32
+ #
33
+ # powershell_script 'set windows timezone' do
34
+ # code "tzutil.exe /s UTC"
35
+ # not_if { shell_out('tzutil.exe /g').stdout.include?('UTC') }
36
+ # end
37
+ #
38
+ # # good
39
+ # timezone 'UTC'
40
+ #
41
+ class ExecuteTzUtil < Base
42
+ include RuboCop::Chef::CookbookHelpers
43
+ extend TargetChefVersion
44
+
45
+ minimum_target_chef_version '14.6'
46
+
47
+ MSG = 'Use the timezone resource included in Chef Infra Client 14.6+ instead of shelling out to tzutil'
48
+ RESTRICT_ON_SEND = [:execute].freeze
49
+
50
+ def_node_matcher :execute_resource?, <<-PATTERN
51
+ (send nil? :execute $str)
52
+ PATTERN
53
+
54
+ def on_send(node)
55
+ execute_resource?(node) do
56
+ return unless node.arguments.first.value.match?(/^tzutil/i)
57
+ add_offense(node, severity: :refactor)
58
+ end
59
+ end
60
+
61
+ def on_block(node)
62
+ match_property_in_resource?(:execute, 'command', node) do |code_property|
63
+ next unless calls_tzutil?(code_property)
64
+ add_offense(node, severity: :refactor)
65
+ end
66
+
67
+ match_property_in_resource?(:powershell_script, 'code', node) do |code_property|
68
+ next unless calls_tzutil?(code_property)
69
+ add_offense(node, severity: :refactor)
70
+ end
71
+ end
72
+
73
+ private
74
+
75
+ def calls_tzutil?(ast_obj)
76
+ property_data = method_arg_ast_to_string(ast_obj)
77
+ true if property_data && property_data.match?(/^tzutil/i)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -1,46 +1,46 @@
1
- # frozen_string_literal: true
2
- #
3
- # Copyright:: 2016-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 Modernize
22
- # Remove legacy code comments that disable Foodcritic rules. These comments are no longer necessary if you've migrated from Foodcritic to Cookstyle for cookbook linting.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # # ~FC013
28
- #
29
- class FoodcriticComments < Base
30
- extend AutoCorrector
31
-
32
- MSG = 'Remove legacy code comments that disable Foodcritic rules'
33
-
34
- def on_new_investigation
35
- processed_source.comments.each do |comment|
36
- next unless comment.text.match?(/#\s*~FC\d{3}.*/)
37
- add_offense(comment, severity: :refactor) do |corrector|
38
- corrector.remove(comment)
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
46
- 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 Modernize
22
+ # Remove legacy code comments that disable Foodcritic rules. These comments are no longer necessary if you've migrated from Foodcritic to Cookstyle for cookbook linting.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # # ~FC013
28
+ #
29
+ class FoodcriticComments < Base
30
+ extend AutoCorrector
31
+
32
+ MSG = 'Remove legacy code comments that disable Foodcritic rules'
33
+
34
+ def on_new_investigation
35
+ processed_source.comments.each do |comment|
36
+ next unless comment.text.match?(/#\s*~FC\d{3}.*/)
37
+ add_offense(comment, severity: :refactor) do |corrector|
38
+ corrector.remove(comment)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -1,48 +1,48 @@
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 Modernize
22
- # if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.
23
- #
24
- # @example
25
- #
26
- # # bad
27
- # default_action :foo if defined?(default_action)
28
- #
29
- # # good
30
- # default_action :foo
31
- #
32
- class IfProvidesDefaultAction < Base
33
- extend AutoCorrector
34
-
35
- MSG = 'if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.'
36
-
37
- def on_defined?(node)
38
- return unless node.arguments.first == s(:send, nil, :default_action)
39
- node = node.parent if node.parent.respond_to?(:if?) && node.parent.if? # we want the whole if statement
40
- add_offense(node, severity: :refactor) do |corrector|
41
- corrector.replace(node, node.children[1].source)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
48
- 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 Modernize
22
+ # if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # default_action :foo if defined?(default_action)
28
+ #
29
+ # # good
30
+ # default_action :foo
31
+ #
32
+ class IfProvidesDefaultAction < Base
33
+ extend AutoCorrector
34
+
35
+ MSG = 'if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.'
36
+
37
+ def on_defined?(node)
38
+ return unless node.arguments.first == s(:send, nil, :default_action)
39
+ node = node.parent if node.parent.respond_to?(:if?) && node.parent.if? # we want the whole if statement
40
+ add_offense(node, severity: :refactor) do |corrector|
41
+ corrector.replace(node, node.children[1].source)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end