Class: Puppet::Pops::Validation::SeverityProducer
- Defined in:
- lib/puppet/pops/validation.rb
Overview
Decides on the severity of a given issue. The produced severity is one of ‘:error`, `:warning`, or `:ignore`. By default, a severity of `:error` is produced for all issues. To configure the severity of an issue call `#severity=(issue, level)`.
Direct Known Subclasses
Constant Summary collapse
- SEVERITIES =
{ ignore: true, warning: true, error: true, deprecation: true }.freeze
Instance Method Summary collapse
- #[](issue) ⇒ Object
-
#[]=(issue, level) ⇒ Object
Override a default severity with the given severity level.
-
#assert_issue(issue) ⇒ Object
private
Checks if the given issue is valid.
-
#initialize(default_severity = :error) ⇒ SeverityProducer
constructor
Creates a new instance where all issues are diagnosed as :error unless overridden.
-
#severity(issue) ⇒ Symbol
Returns the severity of the given issue.
-
#should_report?(issue) ⇒ Boolean
Returns ‘true` if the issue should be reported or not.
Constructor Details
#initialize(default_severity = :error) ⇒ SeverityProducer
Creates a new instance where all issues are diagnosed as :error unless overridden.
101 102 103 104 |
# File 'lib/puppet/pops/validation.rb', line 101 def initialize(default_severity = :error) # If diagnose is not set, the default is returned by the block @severities = Hash.new default_severity end |
Instance Method Details
#[](issue) ⇒ Object
118 119 120 |
# File 'lib/puppet/pops/validation.rb', line 118 def [] issue severity issue end |
#[]=(issue, level) ⇒ Object
Override a default severity with the given severity level.
128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/puppet/pops/validation.rb', line 128 def []=(issue, level) unless issue.is_a? Issues::Issue raise Puppet::DevError.new(_("Attempt to set validation severity for something that is not an Issue. (Got %{issue})") % { issue: issue.class }) end unless SEVERITIES[level] raise Puppet::DevError.new(_("Illegal severity level: %{level} for '%{issue_code}'") % { issue_code: issue.issue_code, level: level }) end unless issue.demotable? || level == :error raise Puppet::DevError.new(_("Attempt to demote the hard issue '%{issue_code}' to %{level}") % { issue_code: issue.issue_code, level: level }) end @severities[issue] = level end |
#assert_issue(issue) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Checks if the given issue is valid.
154 155 156 157 158 |
# File 'lib/puppet/pops/validation.rb', line 154 def assert_issue issue unless issue.is_a? Issues::Issue raise Puppet::DevError.new(_("Attempt to get validation severity for something that is not an Issue. (Got %{issue})") % { issue: issue.class }) end end |
#severity(issue) ⇒ Symbol
Returns the severity of the given issue.
110 111 112 113 |
# File 'lib/puppet/pops/validation.rb', line 110 def severity(issue) assert_issue(issue) @severities[issue] end |
#should_report?(issue) ⇒ Boolean
Returns ‘true` if the issue should be reported or not.
146 147 148 149 |
# File 'lib/puppet/pops/validation.rb', line 146 def should_report? issue diagnose = @severities[issue] diagnose == :error || diagnose == :warning || diagnose == :deprecation end |