Class: RuboCop::ConfigValidator
- Inherits:
-
Object
- Object
- RuboCop::ConfigValidator
- Extended by:
- SimpleForwardable
- Defined in:
- lib/rubocop/config_validator.rb
Overview
Handles validation of configuration, for example cop names, parameter names, and Ruby versions.
Constant Summary collapse
- COMMON_PARAMS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
%w[Exclude Include Severity inherit_mode AutoCorrect StyleGuide Details Enabled].freeze
- INTERNAL_PARAMS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
%w[Description StyleGuide VersionAdded VersionChanged VersionRemoved Reference Safe SafeAutoCorrect].freeze
- NEW_COPS_VALUES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
%w[pending disable enable].freeze
- CONFIG_CHECK_AUTOCORRECTS =
%w[always contextual disabled].freeze
Instance Method Summary collapse
-
#initialize(config) ⇒ ConfigValidator
constructor
A new instance of ConfigValidator.
- #target_ruby_version ⇒ Object
- #validate ⇒ Object
-
#validate_after_resolution ⇒ Object
Validations that should only be run after all config resolving has taken place: * The target ruby version is only checked once the entire inheritance chain has been loaded so that only the final value is validated, and any obsolete but overridden values are ignored.
- #validate_section_presence(name) ⇒ Object
Constructor Details
#initialize(config) ⇒ ConfigValidator
Returns a new instance of ConfigValidator.
27 28 29 30 31 |
# File 'lib/rubocop/config_validator.rb', line 27 def initialize(config) @config = config @config_obsoletion = ConfigObsoletion.new(config) @target_ruby = TargetRuby.new(config) end |
Instance Method Details
#target_ruby_version ⇒ Object
63 64 65 |
# File 'lib/rubocop/config_validator.rb', line 63 def target_ruby_version target_ruby.version end |
#validate ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rubocop/config_validator.rb', line 33 def validate check_cop_config_value(@config) reject_conflicting_safe_settings # Don't validate RuboCop's own files further. Avoids infinite recursion. return if @config.internal? valid_cop_names, invalid_cop_names = @config.keys.partition do |key| ConfigLoader.default_configuration.key?(key) end check_obsoletions alert_about_unrecognized_cops(invalid_cop_names) validate_new_cops_parameter validate_parameter_names(valid_cop_names) validate_enforced_styles(valid_cop_names) validate_syntax_cop reject_mutually_exclusive_defaults end |
#validate_after_resolution ⇒ Object
Validations that should only be run after all config resolving has taken place:
-
The target ruby version is only checked once the entire inheritance
chain has been loaded so that only the final value is validated, and any obsolete but overridden values are ignored.
59 60 61 |
# File 'lib/rubocop/config_validator.rb', line 59 def validate_after_resolution check_target_ruby end |
#validate_section_presence(name) ⇒ Object
67 68 69 70 71 |
# File 'lib/rubocop/config_validator.rb', line 67 def validate_section_presence(name) return unless @config.key?(name) && @config[name].nil? raise ValidationError, "empty section #{name} found in #{smart_loaded_path}" end |