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.
- checksums.yaml +4 -4
- data/Gemfile +25 -29
- data/LICENSE +201 -201
- data/bin/cookstyle +31 -31
- data/bin/cookstyle-profile +31 -31
- data/config/chefstyle.yml +892 -741
- data/config/cookstyle.yml +3273 -3131
- data/config/default.yml +2 -2
- data/cookstyle.gemspec +34 -30
- data/lib/cookstyle/chefstyle.rb +5 -5
- data/lib/cookstyle/version.rb +5 -5
- data/lib/cookstyle.rb +48 -45
- data/lib/rubocop/chef/autocorrect_helpers.rb +33 -33
- data/lib/rubocop/chef/cookbook_helpers.rb +127 -127
- data/lib/rubocop/chef/cookbook_only.rb +76 -76
- data/lib/rubocop/chef/platform_helpers.rb +72 -72
- data/lib/rubocop/chef.rb +11 -11
- data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +61 -61
- data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +56 -56
- data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +69 -69
- data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +55 -55
- data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +77 -77
- data/lib/rubocop/cop/chef/correctness/invalid_cookbook_name.rb +47 -47
- data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +48 -48
- data/lib/rubocop/cop/chef/correctness/invalid_notification_resource.rb +59 -59
- data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +55 -55
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +72 -72
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +70 -70
- data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +57 -57
- data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +89 -89
- data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +70 -70
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +70 -70
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +69 -69
- data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +48 -48
- data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +53 -53
- data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +67 -67
- data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +67 -67
- data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +67 -67
- data/lib/rubocop/cop/chef/correctness/metadata_malformed_version.rb +58 -58
- data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +54 -54
- data/lib/rubocop/cop/chef/correctness/metadata_missing_version.rb +51 -51
- data/lib/rubocop/cop/chef/correctness/node_normal.rb +53 -53
- data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +53 -53
- data/lib/rubocop/cop/chef/correctness/node_save.rb +46 -46
- data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +64 -64
- data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -48
- data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +46 -46
- data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +54 -54
- data/lib/rubocop/cop/chef/correctness/powershell_file_exists.rb +50 -50
- data/lib/rubocop/cop/chef/correctness/property_without_type.rb +59 -59
- data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +51 -51
- data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +50 -50
- data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +56 -56
- data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +52 -52
- data/lib/rubocop/cop/chef/correctness/service_resource.rb +56 -56
- data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +52 -52
- data/lib/rubocop/cop/chef/correctness/tmp_path.rb +59 -59
- data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +57 -57
- data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +52 -52
- data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +55 -55
- data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +57 -57
- data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +98 -98
- data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +83 -83
- data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +55 -55
- data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +55 -55
- data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +56 -56
- data/lib/rubocop/cop/chef/deprecation/cheffile.rb +39 -39
- data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +49 -49
- data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +61 -61
- data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +56 -56
- data/lib/rubocop/cop/chef/deprecation/delivery.rb +48 -48
- data/lib/rubocop/cop/chef/deprecation/depends_chef_nginx_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/deprecation/depends_chef_reporting_cookbook.rb +51 -51
- data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +54 -54
- data/lib/rubocop/cop/chef/deprecation/depends_omnibus_updater_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +50 -50
- data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +48 -48
- data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +129 -129
- data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +78 -78
- data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +61 -61
- data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +64 -64
- data/lib/rubocop/cop/chef/deprecation/deprecated_sudo_actions.rb +65 -65
- data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +42 -42
- data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -67
- data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +69 -69
- data/lib/rubocop/cop/chef/deprecation/easy_install.rb +42 -42
- data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +49 -49
- data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +51 -51
- data/lib/rubocop/cop/chef/deprecation/erl_call.rb +42 -42
- data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +50 -50
- data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +66 -66
- data/lib/rubocop/cop/chef/deprecation/foodcritic_file.rb +41 -41
- data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -43
- data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +140 -140
- data/lib/rubocop/cop/chef/deprecation/hwrp_without_unified_mode_true.rb +86 -86
- data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +59 -59
- data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +56 -56
- data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +91 -91
- data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +53 -53
- data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -42
- data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +46 -46
- data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +63 -63
- data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +60 -60
- data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +60 -60
- data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +65 -65
- data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +80 -80
- data/lib/rubocop/cop/chef/deprecation/node_set.rb +54 -54
- data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +54 -54
- data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +70 -70
- data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +67 -67
- data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +61 -61
- data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +63 -63
- data/lib/rubocop/cop/chef/deprecation/policyfile_community_source.rb +53 -53
- data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +59 -59
- data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +53 -53
- data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +48 -48
- data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +46 -46
- data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +84 -84
- data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +40 -40
- data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +50 -50
- data/lib/rubocop/cop/chef/deprecation/resource_without_unified_mode_true.rb +87 -87
- data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +56 -56
- data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +62 -62
- data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +63 -63
- data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +136 -136
- data/lib/rubocop/cop/chef/deprecation/use_automatic_resource_name.rb +52 -52
- data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +57 -57
- data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -47
- data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +71 -71
- data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +57 -57
- data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +58 -58
- data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +60 -60
- data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +83 -83
- data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +71 -71
- data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +51 -51
- data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +53 -53
- data/lib/rubocop/cop/chef/effortless/berksfile.rb +39 -39
- data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +87 -87
- data/lib/rubocop/cop/chef/effortless/data_bags.rb +40 -40
- data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +47 -47
- data/lib/rubocop/cop/chef/effortless/node_environment.rb +45 -45
- data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +44 -44
- data/lib/rubocop/cop/chef/effortless/node_roles.rb +45 -45
- data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +43 -43
- data/lib/rubocop/cop/chef/effortless/search_used.rb +40 -40
- data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +57 -57
- data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +77 -77
- data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +70 -70
- data/lib/rubocop/cop/chef/modernize/build_essential.rb +55 -55
- data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +60 -60
- data/lib/rubocop/cop/chef/modernize/chef_15_resources.rb +57 -57
- data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +63 -63
- data/lib/rubocop/cop/chef/modernize/class_eval_action_class.rb +63 -63
- data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +53 -53
- data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +55 -55
- data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +121 -121
- data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +50 -50
- data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +59 -59
- data/lib/rubocop/cop/chef/modernize/declare_action_class.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +74 -74
- data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/definitions.rb +36 -36
- data/lib/rubocop/cop/chef/modernize/depends_chef_vault_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_chocolatey_cookbooks.rb +55 -55
- data/lib/rubocop/cop/chef/modernize/depends_kernel_module_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_locale_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_openssl_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_timezone_lwrp_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_windows_firewall_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +55 -55
- data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +52 -52
- data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +81 -81
- data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +67 -67
- data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +76 -76
- data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +70 -70
- data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +83 -83
- data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +46 -46
- data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +48 -48
- data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +83 -83
- data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +70 -70
- data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +58 -58
- data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +51 -51
- data/lib/rubocop/cop/chef/modernize/node_init_package.rb +89 -89
- data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +57 -57
- data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +47 -47
- data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +54 -54
- data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +60 -60
- data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +51 -51
- data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +50 -50
- data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +68 -68
- data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +53 -53
- data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +56 -56
- data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +56 -56
- data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +68 -68
- data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +63 -63
- data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +49 -49
- data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +66 -66
- data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +94 -94
- data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +77 -77
- data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +63 -63
- data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +52 -52
- data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +53 -53
- data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +46 -46
- data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +60 -60
- data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +58 -58
- data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +63 -63
- data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +55 -55
- data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +51 -51
- data/lib/rubocop/cop/chef/modernize/use_chef_language_cloud_helpers.rb +93 -93
- data/lib/rubocop/cop/chef/modernize/use_chef_language_env_helpers.rb +69 -69
- data/lib/rubocop/cop/chef/modernize/use_chef_language_systemd_helper.rb +60 -60
- data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +113 -113
- data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +60 -60
- data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +58 -58
- data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +52 -52
- data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +92 -92
- data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +46 -46
- data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +59 -59
- data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +60 -60
- data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +65 -65
- data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +60 -60
- data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +52 -52
- data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +60 -60
- data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +68 -68
- data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +58 -58
- data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +81 -81
- data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +65 -65
- data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +59 -59
- data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +61 -61
- data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +47 -47
- data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +52 -52
- data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +50 -50
- data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +64 -64
- data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +46 -46
- data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +60 -60
- data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +67 -67
- data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +116 -116
- data/lib/rubocop/cop/chef/security/ssh_private_key.rb +49 -49
- data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +50 -50
- data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +47 -47
- data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +55 -55
- data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +52 -52
- data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +60 -60
- data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +62 -62
- data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +542 -542
- data/lib/rubocop/cop/chef/style/attribute_keys.rb +94 -95
- data/lib/rubocop/cop/chef/style/chef_whaaat.rb +49 -49
- data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +42 -42
- data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +101 -101
- data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +50 -50
- data/lib/rubocop/cop/chef/style/comments_format.rb +71 -71
- data/lib/rubocop/cop/chef/style/file_mode.rb +86 -86
- data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +59 -59
- data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +58 -58
- data/lib/rubocop/cop/chef/style/negating_only_if.rb +69 -69
- data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +70 -70
- data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +89 -89
- data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +53 -53
- data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +103 -103
- data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +100 -100
- data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +86 -86
- data/lib/rubocop/cop/chefstyle/ruby/gemspec_license.rb +55 -55
- data/lib/rubocop/cop/chefstyle/ruby/gemspec_require_rubygems.rb +46 -46
- data/lib/rubocop/cop/chefstyle/ruby/legacy_powershell_out_methods.rb +36 -36
- data/lib/rubocop/cop/chefstyle/ruby/require_net_https.rb +54 -54
- data/lib/rubocop/cop/chefstyle/ruby/unless_defined_require.rb +122 -122
- data/lib/rubocop/cop/inspec/deprecation/attribute_default.rb +53 -53
- data/lib/rubocop/cop/inspec/deprecation/attribute_helper.rb +47 -47
- data/lib/rubocop/cop/target_chef_version.rb +22 -22
- data/lib/rubocop/monkey_patches/allow_invalid_ruby.rb +28 -28
- data/lib/rubocop/monkey_patches/base.rb +11 -11
- data/lib/rubocop/monkey_patches/config.rb +15 -15
- data/lib/rubocop/monkey_patches/directive_comment.rb +12 -12
- data/lib/rubocop/monkey_patches/registry_cop.rb +15 -15
- data/lib/rubocop/monkey_patches/team.rb +25 -24
- metadata +33 -9
@@ -1,60 +1,60 @@
|
|
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 RedundantCode
|
22
|
-
# There is no need to notify an apt-get update when an apt_repository is created as this is done automatically by the apt_repository resource.
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
#
|
26
|
-
# ### incorrect
|
27
|
-
# apt_repository 'my repo' do
|
28
|
-
# uri 'http://packages.example.com/debian'
|
29
|
-
# components %w(stable main)
|
30
|
-
# deb_src false
|
31
|
-
# notifies :run, 'execute[apt-get update]', :immediately
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# ### correct
|
35
|
-
# apt_repository 'my repo' do
|
36
|
-
# uri 'http://packages.example.com/debian'
|
37
|
-
# components %w(stable main)
|
38
|
-
# deb_src false
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
class AptRepositoryNotifiesAptUpdate < Base
|
42
|
-
include RuboCop::Chef::CookbookHelpers
|
43
|
-
include RangeHelp
|
44
|
-
extend AutoCorrector
|
45
|
-
|
46
|
-
MSG = 'There is no need to notify an apt-get update when an apt_repository is created as this is done automatically by the apt_repository resource.'
|
47
|
-
|
48
|
-
def on_block(node)
|
49
|
-
match_property_in_resource?(:apt_repository, 'notifies', node) do |notifies|
|
50
|
-
return unless notifies.arguments[1] == s(:str, 'execute[apt-get update]')
|
51
|
-
add_offense(notifies, severity: :refactor) do |corrector|
|
52
|
-
corrector.remove(range_with_surrounding_space(range: notifies.loc.expression, side: :left))
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
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 RedundantCode
|
22
|
+
# There is no need to notify an apt-get update when an apt_repository is created as this is done automatically by the apt_repository resource.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
#
|
26
|
+
# ### incorrect
|
27
|
+
# apt_repository 'my repo' do
|
28
|
+
# uri 'http://packages.example.com/debian'
|
29
|
+
# components %w(stable main)
|
30
|
+
# deb_src false
|
31
|
+
# notifies :run, 'execute[apt-get update]', :immediately
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# ### correct
|
35
|
+
# apt_repository 'my repo' do
|
36
|
+
# uri 'http://packages.example.com/debian'
|
37
|
+
# components %w(stable main)
|
38
|
+
# deb_src false
|
39
|
+
# end
|
40
|
+
#
|
41
|
+
class AptRepositoryNotifiesAptUpdate < Base
|
42
|
+
include RuboCop::Chef::CookbookHelpers
|
43
|
+
include RangeHelp
|
44
|
+
extend AutoCorrector
|
45
|
+
|
46
|
+
MSG = 'There is no need to notify an apt-get update when an apt_repository is created as this is done automatically by the apt_repository resource.'
|
47
|
+
|
48
|
+
def on_block(node)
|
49
|
+
match_property_in_resource?(:apt_repository, 'notifies', node) do |notifies|
|
50
|
+
return unless notifies.arguments[1] == s(:str, 'execute[apt-get update]')
|
51
|
+
add_offense(notifies, severity: :refactor) do |corrector|
|
52
|
+
corrector.remove(range_with_surrounding_space(range: notifies.loc.expression, side: :left))
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -1,52 +1,52 @@
|
|
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 RedundantCode
|
22
|
-
# The attribute metadata.rb method is not used and is unnecessary in cookbooks.
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
#
|
26
|
-
# ### incorrect in metadata.rb:
|
27
|
-
#
|
28
|
-
# attribute 'zookeeper_bridge/server',
|
29
|
-
# display_name: 'zookeeper server',
|
30
|
-
# description: 'Zookeeper server address.',
|
31
|
-
# type: 'string',
|
32
|
-
# required: 'optional',
|
33
|
-
# default: '"127.0.0.1:2181"'
|
34
|
-
#
|
35
|
-
class AttributeMetadata < Base
|
36
|
-
include RangeHelp
|
37
|
-
include RuboCop::Chef::AutocorrectHelpers
|
38
|
-
extend AutoCorrector
|
39
|
-
|
40
|
-
MSG = 'The attribute metadata.rb method is not used and is unnecessary in cookbooks.'
|
41
|
-
RESTRICT_ON_SEND = [:attribute].freeze
|
42
|
-
|
43
|
-
def on_send(node)
|
44
|
-
add_offense(node, severity: :refactor) do |corrector|
|
45
|
-
corrector.remove(range_with_surrounding_space(range: expression_including_heredocs(node), side: :left))
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
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 RedundantCode
|
22
|
+
# The attribute metadata.rb method is not used and is unnecessary in cookbooks.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
#
|
26
|
+
# ### incorrect in metadata.rb:
|
27
|
+
#
|
28
|
+
# attribute 'zookeeper_bridge/server',
|
29
|
+
# display_name: 'zookeeper server',
|
30
|
+
# description: 'Zookeeper server address.',
|
31
|
+
# type: 'string',
|
32
|
+
# required: 'optional',
|
33
|
+
# default: '"127.0.0.1:2181"'
|
34
|
+
#
|
35
|
+
class AttributeMetadata < Base
|
36
|
+
include RangeHelp
|
37
|
+
include RuboCop::Chef::AutocorrectHelpers
|
38
|
+
extend AutoCorrector
|
39
|
+
|
40
|
+
MSG = 'The attribute metadata.rb method is not used and is unnecessary in cookbooks.'
|
41
|
+
RESTRICT_ON_SEND = [:attribute].freeze
|
42
|
+
|
43
|
+
def on_send(node)
|
44
|
+
add_offense(node, severity: :refactor) do |corrector|
|
45
|
+
corrector.remove(range_with_surrounding_space(range: expression_including_heredocs(node), side: :left))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,46 +1,46 @@
|
|
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 RedundantCode
|
22
|
-
# The conflicts metadata.rb method is not used and is unnecessary in cookbooks.
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
#
|
26
|
-
# ### incorrect in metadata.rb:
|
27
|
-
#
|
28
|
-
# conflicts "another_cookbook"
|
29
|
-
#
|
30
|
-
class ConflictsMetadata < Base
|
31
|
-
include RangeHelp
|
32
|
-
extend AutoCorrector
|
33
|
-
|
34
|
-
MSG = 'The conflicts metadata.rb method is not used and is unnecessary in cookbooks.'
|
35
|
-
RESTRICT_ON_SEND = [:conflicts].freeze
|
36
|
-
|
37
|
-
def on_send(node)
|
38
|
-
add_offense(node, severity: :refactor) do |corrector|
|
39
|
-
corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :right))
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
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 RedundantCode
|
22
|
+
# The conflicts metadata.rb method is not used and is unnecessary in cookbooks.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
#
|
26
|
+
# ### incorrect in metadata.rb:
|
27
|
+
#
|
28
|
+
# conflicts "another_cookbook"
|
29
|
+
#
|
30
|
+
class ConflictsMetadata < Base
|
31
|
+
include RangeHelp
|
32
|
+
extend AutoCorrector
|
33
|
+
|
34
|
+
MSG = 'The conflicts metadata.rb method is not used and is unnecessary in cookbooks.'
|
35
|
+
RESTRICT_ON_SEND = [:conflicts].freeze
|
36
|
+
|
37
|
+
def on_send(node)
|
38
|
+
add_offense(node, severity: :refactor) do |corrector|
|
39
|
+
corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :right))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,60 +1,60 @@
|
|
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 RedundantCode
|
22
|
-
# It is not necessary to set `actions` or `allowed_actions` in custom resources as Chef Infra Client determines these automatically from the set of all actions defined in the resource.
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
#
|
26
|
-
# ### incorrect
|
27
|
-
# allowed_actions [:create, :remove]
|
28
|
-
#
|
29
|
-
# # also bad
|
30
|
-
# actions [:create, :remove]
|
31
|
-
#
|
32
|
-
class CustomResourceWithAllowedActions < Base
|
33
|
-
include RangeHelp
|
34
|
-
extend AutoCorrector
|
35
|
-
|
36
|
-
MSG = 'It is not necessary to set `actions` or `allowed_actions` in custom resources as Chef Infra Client determines these automatically from the set of all actions defined in the resource'
|
37
|
-
RESTRICT_ON_SEND = [:allowed_actions, :actions].freeze
|
38
|
-
|
39
|
-
def_node_search :poise_require, '(send nil? :require (str "poise"))'
|
40
|
-
|
41
|
-
def_node_search :resource_actions?, <<-PATTERN
|
42
|
-
(block (send nil? :action ... ) ... )
|
43
|
-
PATTERN
|
44
|
-
|
45
|
-
def on_send(node)
|
46
|
-
# avoid triggering on things like new_resource.actions
|
47
|
-
return unless node.receiver.nil?
|
48
|
-
|
49
|
-
# if the resource requires poise then bail out since we're in a poise resource where @allowed_actions is legit
|
50
|
-
return if poise_require(processed_source.ast).any? || !resource_actions?(processed_source.ast)
|
51
|
-
|
52
|
-
add_offense(node, severity: :refactor) do |corrector|
|
53
|
-
corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
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 RedundantCode
|
22
|
+
# It is not necessary to set `actions` or `allowed_actions` in custom resources as Chef Infra Client determines these automatically from the set of all actions defined in the resource.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
#
|
26
|
+
# ### incorrect
|
27
|
+
# allowed_actions [:create, :remove]
|
28
|
+
#
|
29
|
+
# # also bad
|
30
|
+
# actions [:create, :remove]
|
31
|
+
#
|
32
|
+
class CustomResourceWithAllowedActions < Base
|
33
|
+
include RangeHelp
|
34
|
+
extend AutoCorrector
|
35
|
+
|
36
|
+
MSG = 'It is not necessary to set `actions` or `allowed_actions` in custom resources as Chef Infra Client determines these automatically from the set of all actions defined in the resource'
|
37
|
+
RESTRICT_ON_SEND = [:allowed_actions, :actions].freeze
|
38
|
+
|
39
|
+
def_node_search :poise_require, '(send nil? :require (str "poise"))'
|
40
|
+
|
41
|
+
def_node_search :resource_actions?, <<-PATTERN
|
42
|
+
(block (send nil? :action ... ) ... )
|
43
|
+
PATTERN
|
44
|
+
|
45
|
+
def on_send(node)
|
46
|
+
# avoid triggering on things like new_resource.actions
|
47
|
+
return unless node.receiver.nil?
|
48
|
+
|
49
|
+
# if the resource requires poise then bail out since we're in a poise resource where @allowed_actions is legit
|
50
|
+
return if poise_require(processed_source.ast).any? || !resource_actions?(processed_source.ast)
|
51
|
+
|
52
|
+
add_offense(node, severity: :refactor) do |corrector|
|
53
|
+
corrector.remove(range_with_surrounding_space(range: node.loc.expression, side: :left))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -1,68 +1,68 @@
|
|
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 RedundantCode
|
22
|
-
# If a resource includes the `compile_time` property there's no need to also use `.run_action(:some_action)` on the resource block
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
#
|
26
|
-
# ### incorrect
|
27
|
-
# chef_gem 'deep_merge' do
|
28
|
-
# action :nothing
|
29
|
-
# compile_time true
|
30
|
-
# end.run_action(:install)
|
31
|
-
#
|
32
|
-
# ### correct
|
33
|
-
# chef_gem 'deep_merge' do
|
34
|
-
# action :install
|
35
|
-
# compile_time true
|
36
|
-
# end
|
37
|
-
#
|
38
|
-
class DoubleCompileTime < Base
|
39
|
-
extend RuboCop::Cop::AutoCorrector
|
40
|
-
|
41
|
-
MSG = "If a resource includes the `compile_time` property there's no need to also use `.run_action(:some_action)` on the resource block."
|
42
|
-
RESTRICT_ON_SEND = [:run_action].freeze
|
43
|
-
|
44
|
-
def_node_matcher :compile_time_and_run_action?, <<-PATTERN
|
45
|
-
(send
|
46
|
-
$(block
|
47
|
-
(send nil? ... )
|
48
|
-
(args)
|
49
|
-
(begin <
|
50
|
-
(send nil? :action (sym $_) )
|
51
|
-
(send nil? :compile_time (true) )
|
52
|
-
...
|
53
|
-
>)
|
54
|
-
) :run_action (sym $_) )
|
55
|
-
PATTERN
|
56
|
-
|
57
|
-
def on_send(node)
|
58
|
-
compile_time_and_run_action?(node) do |resource, action, run_action|
|
59
|
-
add_offense(node.loc.selector, severity: :refactor) do |corrector|
|
60
|
-
corrector.replace(node, resource.source.gsub(action.to_s, run_action.to_s))
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
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 RedundantCode
|
22
|
+
# If a resource includes the `compile_time` property there's no need to also use `.run_action(:some_action)` on the resource block
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
#
|
26
|
+
# ### incorrect
|
27
|
+
# chef_gem 'deep_merge' do
|
28
|
+
# action :nothing
|
29
|
+
# compile_time true
|
30
|
+
# end.run_action(:install)
|
31
|
+
#
|
32
|
+
# ### correct
|
33
|
+
# chef_gem 'deep_merge' do
|
34
|
+
# action :install
|
35
|
+
# compile_time true
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
class DoubleCompileTime < Base
|
39
|
+
extend RuboCop::Cop::AutoCorrector
|
40
|
+
|
41
|
+
MSG = "If a resource includes the `compile_time` property there's no need to also use `.run_action(:some_action)` on the resource block."
|
42
|
+
RESTRICT_ON_SEND = [:run_action].freeze
|
43
|
+
|
44
|
+
def_node_matcher :compile_time_and_run_action?, <<-PATTERN
|
45
|
+
(send
|
46
|
+
$(block
|
47
|
+
(send nil? ... )
|
48
|
+
(args)
|
49
|
+
(begin <
|
50
|
+
(send nil? :action (sym $_) )
|
51
|
+
(send nil? :compile_time (true) )
|
52
|
+
...
|
53
|
+
>)
|
54
|
+
) :run_action (sym $_) )
|
55
|
+
PATTERN
|
56
|
+
|
57
|
+
def on_send(node)
|
58
|
+
compile_time_and_run_action?(node) do |resource, action, run_action|
|
59
|
+
add_offense(node.loc.selector, severity: :refactor) do |corrector|
|
60
|
+
corrector.replace(node, resource.source.gsub(action.to_s, run_action.to_s))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|