Class: Puppet::Pops::Validation::DiagnosticFormatter
- Defined in:
- lib/puppet/pops/validation.rb
Overview
Formats a diagnostic for output. Produces a diagnostic output typical for a compiler (suitable for interpretation by tools) The format is: ‘file:line:pos: Message`, where pos, line and file are included if available.
Direct Known Subclasses
Instance Method Summary collapse
- #format(diagnostic) ⇒ Object
- #format_location(diagnostic) ⇒ Object
- #format_message(diagnostic) ⇒ Object
-
#format_severity(diagnostic) ⇒ Object
This produces “Deprecation notice: ” prefix if the diagnostic has :deprecation severity, otherwise “”.
Instance Method Details
#format(diagnostic) ⇒ Object
266 267 268 |
# File 'lib/puppet/pops/validation.rb', line 266 def format diagnostic "#{loc(diagnostic)} #{format_severity(diagnostic)}#{(diagnostic)}" end |
#format_location(diagnostic) ⇒ Object
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/puppet/pops/validation.rb', line 283 def format_location diagnostic file = diagnostic.file file = (file.is_a?(String) && file.empty?) ? nil : file line = pos = nil if diagnostic.source_pos line = diagnostic.source_pos.line pos = diagnostic.source_pos.pos end if file && line && pos "#{file}:#{line}:#{pos}:" elsif file && line "#{file}:#{line}:" elsif file "#{file}:" else "" end end |
#format_message(diagnostic) ⇒ Object
270 271 272 |
# File 'lib/puppet/pops/validation.rb', line 270 def diagnostic diagnostic.issue.format(diagnostic.arguments) end |
#format_severity(diagnostic) ⇒ Object
Note:
Note that it is not a good idea to use Puppet.deprecation_warning as it is for internal deprecation.
This produces “Deprecation notice: ” prefix if the diagnostic has :deprecation severity, otherwise “”. The idea is that all other diagnostics are emitted with the methods Puppet.err (or an exception), and Puppet.warning.
279 280 281 |
# File 'lib/puppet/pops/validation.rb', line 279 def format_severity diagnostic diagnostic.severity == :deprecation ? "Deprecation notice: " : "" end |