Class: Puppet::Pops::Validation::Diagnostic

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/validation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(severity, issue, file, source_pos, arguments = {}, exception = nil) ⇒ Diagnostic

Returns a new instance of Diagnostic.



221
222
223
224
225
226
227
228
229
230
# File 'lib/puppet/pops/validation.rb', line 221

def initialize severity, issue, file, source_pos, arguments={}, exception=nil
  @severity = severity
  @issue = issue
  @file = file
  @source_pos = source_pos
  @arguments = arguments
  # TODO: Currently unused, the intention is to provide more information (stack backtrace, etc.) when
  # debugging or similar - this to catch internal problems reported as higher level issues.
  @exception = exception
end

Instance Attribute Details

#argumentsObject (readonly)



217
218
219
# File 'lib/puppet/pops/validation.rb', line 217

def arguments
  @arguments
end

#exceptionObject (readonly)



218
219
220
# File 'lib/puppet/pops/validation.rb', line 218

def exception
  @exception
end

#fileObject (readonly)



219
220
221
# File 'lib/puppet/pops/validation.rb', line 219

def file
  @file
end

#issueObject (readonly)



216
217
218
# File 'lib/puppet/pops/validation.rb', line 216

def issue
  @issue
end

#severityObject (readonly)



215
216
217
# File 'lib/puppet/pops/validation.rb', line 215

def severity
  @severity
end

#source_posObject (readonly)



220
221
222
# File 'lib/puppet/pops/validation.rb', line 220

def source_pos
  @source_pos
end

Instance Method Details

#==(o) ⇒ Object Also known as: eql?

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



235
236
237
238
239
240
241
# File 'lib/puppet/pops/validation.rb', line 235

def ==(o)
  self.class            == o.class             &&
    same_position?(o)                          &&
    issue.issue_code    == o.issue.issue_code  &&
    file                == o.file              &&
    severity            == o.severity
end

#hashObject



250
251
252
# File 'lib/puppet/pops/validation.rb', line 250

def hash
  @hash ||= [file, source_pos.offset, issue.issue_code, severity].hash
end