class Puppet::Pops::Validation::Diagnostic

Attributes

arguments[R]
exception[R]
file[R]
issue[R]
severity[R]
source_pos[R]

Public Class Methods

new(severity, issue, file, source_pos, arguments={}) click to toggle source
    # File lib/puppet/pops/validation.rb
231 def initialize severity, issue, file, source_pos, arguments={}, exception=nil
232   @severity = severity
233   @issue = issue
234   @file = file
235   @source_pos = source_pos
236   @arguments = arguments
237   # TODO: Currently unused, the intention is to provide more information (stack backtrace, etc.) when
238   # debugging or similar - this to catch internal problems reported as higher level issues.
239   @exception = exception
240 end

Public Instance Methods

==(o) click to toggle source

Two diagnostics are considered equal if the have the same issue, location and severity (arguments and exception are ignored)

    # File lib/puppet/pops/validation.rb
245 def ==(o)
246   self.class            == o.class             &&
247     same_position?(o)                          &&
248     issue.issue_code    == o.issue.issue_code  &&
249     file                == o.file              &&
250     severity            == o.severity
251 end
Also aliased as: eql?
eql?(o)
Alias for: ==
hash() click to toggle source
    # File lib/puppet/pops/validation.rb
260 def hash
261   @hash ||= [file, source_pos.offset, issue.issue_code, severity].hash
262 end

Private Instance Methods

same_position?(o) click to toggle source

Position is equal if the diagnostic is not located or if referring to the same offset

    # File lib/puppet/pops/validation.rb
255 def same_position?(o)
256   source_pos.nil? && o.source_pos.nil? || source_pos.offset == o.source_pos.offset
257 end