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.



15
16
17
# File 'lib/puppet/error.rb', line 15

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.



15
16
17
# File 'lib/puppet/error.rb', line 15

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.



15
16
17
# File 'lib/puppet/error.rb', line 15

def pos
  @pos
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.



20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/error.rb', line 20

def initialize(message, file=nil, line=nil, pos=nil, original=nil)
  if pos.kind_of? Exception
    original = pos
    pos = nil
  end
  super(message, original)
  @file = file unless (file.is_a?(String) && file.empty?)
  @line = line
  @pos = pos
end

#to_sObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/puppet/error.rb', line 30

def to_s
  msg = super
  @file = nil if (@file.is_a?(String) && @file.empty?)
  if @file and @line and @pos
    "#{msg} at #{@file}:#{@line}:#{@pos}"
  elsif @file and @line
    "#{msg} at #{@file}:#{@line}"
  elsif @line and @pos
      "#{msg} at line #{@line}:#{@pos}"
  elsif @line
    "#{msg} at line #{@line}"
  elsif @file
    "#{msg} in #{@file}"
  else
    msg
  end
end