Module: Puppet::ExternalFileError

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#fileObject

This module implements logging with a filename and line number. Use this for errors that need to report a location in a non-ruby file that we parse.



18
19
20
# File 'lib/puppet/error.rb', line 18

def file
  @file
end

#lineObject

This module implements logging with a filename and line number. Use this for errors that need to report a location in a non-ruby file that we parse.



18
19
20
# File 'lib/puppet/error.rb', line 18

def line
  @line
end

#posObject

This module implements logging with a filename and line number. Use this for errors that need to report a location in a non-ruby file that we parse.



18
19
20
# File 'lib/puppet/error.rb', line 18

def pos
  @pos
end

#puppetstackObject

This module implements logging with a filename and line number. Use this for errors that need to report a location in a non-ruby file that we parse.



18
19
20
# File 'lib/puppet/error.rb', line 18

def puppetstack
  @puppetstack
end

Instance Method Details

#initialize(message, file = nil, line = nil, pos = nil, original = nil) ⇒ Object

May be called with 3 arguments for message, file, line, and exception, or 4 args including the position on the line.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/puppet/error.rb', line 23

def initialize(message, file = nil, line = nil, pos = nil, original = nil)
  if pos.is_a? Exception
    original = pos
    pos = nil
  end

  super(message, original)

  @file = file unless file.is_a?(String) && file.empty?
  @line = line
  @pos = pos

  if original && original.respond_to?(:puppetstack)
    @puppetstack = original.puppetstack
  else
    @puppetstack = Puppet::Pops::PuppetStack.stacktrace()
  end
end

#to_sObject



42
43
44
45
46
47
# File 'lib/puppet/error.rb', line 42

def to_s
  msg = super
  @file = nil if @file.is_a?(String) && @file.empty?
  msg += Puppet::Util::Errors.error_location_with_space(@file, @line, @pos)
  msg
end