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.
100 101 102 103 |
# File 'lib/puppet/pops/validation.rb', line 100 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
117 118 119 |
# File 'lib/puppet/pops/validation.rb', line 117 def [] issue severity issue end |
#[]=(issue, level) ⇒ Object
Override a default severity with the given severity level.
127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/puppet/pops/validation.rb', line 127 def []=(issue, level) unless issue.is_a? Issues::Issue raise Puppet::DevError, _("Attempt to set validation severity for something that is not an Issue. (Got %{issue})") % { issue: issue.class } end unless SEVERITIES[level] raise Puppet::DevError, _("Illegal severity level: %{level} for '%{issue_code}'") % { issue_code: issue.issue_code, level: level } end unless issue.demotable? || level == :error raise Puppet::DevError, _("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, _("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.
109 110 111 112 |
# File 'lib/puppet/pops/validation.rb', line 109 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 |