Class: Puppet::Pops::Validation::Acceptor
- Defined in:
- lib/puppet/pops/validation.rb
Overview
An acceptor of diagnostics. An acceptor of diagnostics is given each issue as they are found by a diagnostician/validator. An acceptor can collect all found issues, or decide to collect a few and then report, or give up as the first issue if found. This default implementation collects all diagnostics in the order they are produced, and can then answer questions about what was diagnosed.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#diagnostics ⇒ Object
readonly
All diagnostic in the order they were issued.
-
#error_count ⇒ Object
readonly
The number of :error severity issues.
-
#warning_count ⇒ Object
readonly
The number of :warning severity issues + number of :deprecation severity issues.
Instance Method Summary collapse
-
#accept(diagnostic) ⇒ Object
Add a diagnostic, or all diagnostics from another acceptor to the set of diagnostics.
-
#errors ⇒ Object
Returns the diagnosed errors in the order thwy were reported.
-
#errors? ⇒ Boolean
Returns true when errors have been diagnosed.
- #errors_and_warnings ⇒ Object
-
#errors_or_warnings? ⇒ Boolean
Returns true when errors and/or warnings have been diagnosed.
-
#ignored ⇒ Object
Returns the ignored diagnostics in the order thwy were reported (if reported at all).
-
#initialize ⇒ Acceptor
constructor
Initializes this diagnostics acceptor.
-
#prune(&block) ⇒ Array<Puppet::Pops::Validation::Diagnostic, nil] the removed set of diagnostics or nil if nothing was removed
Prunes the contain diagnostics by removing those for which the given block returns true.
-
#warnings ⇒ Object
Returns the diagnosed warnings in the order thwy were reported.
-
#warnings? ⇒ Boolean
Returns true when warnings have been diagnosed.
Constructor Details
#initialize ⇒ Acceptor
Initializes this diagnostics acceptor. By default, the acceptor is configured with a default severity producer. TODO add semantic_label_provider
360 361 362 363 364 |
# File 'lib/puppet/pops/validation.rb', line 360 def initialize() @diagnostics = [] @error_count = 0 @warning_count = 0 end |
Instance Attribute Details
#diagnostics ⇒ Object (readonly)
All diagnostic in the order they were issued
347 348 349 |
# File 'lib/puppet/pops/validation.rb', line 347 def diagnostics @diagnostics end |
#error_count ⇒ Object (readonly)
The number of :error severity issues
353 354 355 |
# File 'lib/puppet/pops/validation.rb', line 353 def error_count @error_count end |
#warning_count ⇒ Object (readonly)
The number of :warning severity issues + number of :deprecation severity issues
350 351 352 |
# File 'lib/puppet/pops/validation.rb', line 350 def warning_count @warning_count end |
Instance Method Details
#accept(diagnostic) ⇒ Object
Add a diagnostic, or all diagnostics from another acceptor to the set of diagnostics
403 404 405 406 407 408 409 |
# File 'lib/puppet/pops/validation.rb', line 403 def accept(diagnostic) if diagnostic.is_a?(Acceptor) diagnostic.diagnostics.each {|d| self.send(d.severity, d)} else self.send(diagnostic.severity, diagnostic) end end |
#errors ⇒ Object
Returns the diagnosed errors in the order thwy were reported.
382 383 384 |
# File 'lib/puppet/pops/validation.rb', line 382 def errors @diagnostics.select {|d| d.severity == :error } end |
#errors? ⇒ Boolean
Returns true when errors have been diagnosed.
367 368 369 |
# File 'lib/puppet/pops/validation.rb', line 367 def errors? @error_count > 0 end |
#errors_and_warnings ⇒ Object
392 393 394 |
# File 'lib/puppet/pops/validation.rb', line 392 def errors_and_warnings @diagnostics.select {|d| d.severity != :ignore } end |
#errors_or_warnings? ⇒ Boolean
Returns true when errors and/or warnings have been diagnosed.
377 378 379 |
# File 'lib/puppet/pops/validation.rb', line 377 def errors_or_warnings? errors? || warnings? end |
#ignored ⇒ Object
Returns the ignored diagnostics in the order thwy were reported (if reported at all)
397 398 399 |
# File 'lib/puppet/pops/validation.rb', line 397 def ignored @diagnostics.select {|d| d.severity == :ignore } end |
#prune(&block) ⇒ Array<Puppet::Pops::Validation::Diagnostic, nil] the removed set of diagnostics or nil if nothing was removed
Prunes the contain diagnostics by removing those for which the given block returns true. The internal statistics is updated as a consequence of removing.
415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 |
# File 'lib/puppet/pops/validation.rb', line 415 def prune(&block) removed = [] @diagnostics.delete_if do |d| if should_remove = yield(d) removed << d end should_remove end removed.each do |d| case d.severity when :error @error_count -= 1 when :warning @warning_count -= 1 # there is not ignore_count end end removed.empty? ? nil : removed end |
#warnings ⇒ Object
Returns the diagnosed warnings in the order thwy were reported. (This includes :warning and :deprecation severity)
388 389 390 |
# File 'lib/puppet/pops/validation.rb', line 388 def warnings @diagnostics.select {|d| d.severity == :warning || d.severity == :deprecation } end |
#warnings? ⇒ Boolean
Returns true when warnings have been diagnosed.
372 373 374 |
# File 'lib/puppet/pops/validation.rb', line 372 def warnings? @warning_count > 0 end |