Exception: Rufus::Lua::LuaError

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/rufus/lua/error.rb

Overview

An error class for rufus-lua.

Constant Summary collapse

CALLER_REX =
/^(.+):(\d+):/
DIR =
File.dirname(__FILE__)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind, errcode, msg, binding, filename, lineno) ⇒ LuaError

Returns a new instance of LuaError.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/rufus/lua/error.rb', line 38

def initialize(kind, errcode, msg, binding, filename, lineno)

  super("#{kind} : '#{msg}' (#{errcode})")

  @kind = kind
  @errcode = errcode
  @msg = msg

  @binding = binding
  @filename = filename
  @lineno = lineno
end

Instance Attribute Details

#bindingObject (readonly)

Returns the value of attribute binding.



34
35
36
# File 'lib/rufus/lua/error.rb', line 34

def binding
  @binding
end

#errcodeObject (readonly)

Returns the value of attribute errcode.



33
34
35
# File 'lib/rufus/lua/error.rb', line 33

def errcode
  @errcode
end

#filenameObject (readonly)

Returns the value of attribute filename.



34
35
36
# File 'lib/rufus/lua/error.rb', line 34

def filename
  @filename
end

#kindObject (readonly)

Returns the value of attribute kind.



33
34
35
# File 'lib/rufus/lua/error.rb', line 33

def kind
  @kind
end

#linenoObject (readonly)

Returns the value of attribute lineno.



34
35
36
# File 'lib/rufus/lua/error.rb', line 34

def lineno
  @lineno
end

#msgObject (readonly)

Returns the value of attribute msg.



33
34
35
# File 'lib/rufus/lua/error.rb', line 33

def msg
  @msg
end

#original_backtraceObject (readonly)

Returns the value of attribute original_backtrace.



36
37
38
# File 'lib/rufus/lua/error.rb', line 36

def original_backtrace
  @original_backtrace
end

Instance Method Details

#set_backtrace(trace) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/rufus/lua/error.rb', line 67

def set_backtrace(trace)

  @original_backtrace = trace

  trace =
    trace.select { |line|
      m = CALLER_REX.match(line)
      ( ! m) || File.dirname(m[1]) != DIR
    }

  trace.insert(0, "#{@filename}:#{@lineno}:") if @filename

  super(trace)
end