Exception: Wolverine::LuaError
- Inherits:
-
StandardError
- Object
- StandardError
- Wolverine::LuaError
- Defined in:
- lib/wolverine/lua_error.rb
Overview
Reformats errors raised by redis representing failures while executing a lua script. The default errors have confusing messages and backtraces, and a type of RuntimeError. This class improves the message and modifies the backtrace to include the lua script itself in a reasonable way.
Constant Summary collapse
- PATTERN =
/ERR Error (compiling|running) script \(.*?\): .*?:(\d+): (.*)/- WOLVERINE_LIB_PATH =
File.('../../', __FILE__)
- CONTEXT_LINE_NUMBER =
2
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
Returns the value of attribute content.
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#file ⇒ Object
readonly
Returns the value of attribute file.
Class Method Summary collapse
-
.intercepts?(error) ⇒ Boolean
Is this error one that should be reformatted?.
Instance Method Summary collapse
-
#initialize(error, file, content) ⇒ LuaError
constructor
Initialize a new LuaError from an existing redis error, adjusting the message and backtrace in the process.
Constructor Details
#initialize(error, file, content) ⇒ LuaError
Initialize a new Wolverine::LuaError from an existing redis error, adjusting the message and backtrace in the process.
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/wolverine/lua_error.rb', line 28 def initialize error, file, content @error = error @file = file @content = content @error. =~ PATTERN _stage, line_number, = $1, $2, $3 error_context = generate_error_context(content, line_number.to_i) super "#{}\n\n#{error_context}\n\n" set_backtrace generate_backtrace file, line_number end |
Instance Attribute Details
#content ⇒ Object (readonly)
Returns the value of attribute content.
12 13 14 |
# File 'lib/wolverine/lua_error.rb', line 12 def content @content end |
#error ⇒ Object (readonly)
Returns the value of attribute error.
12 13 14 |
# File 'lib/wolverine/lua_error.rb', line 12 def error @error end |
#file ⇒ Object (readonly)
Returns the value of attribute file.
12 13 14 |
# File 'lib/wolverine/lua_error.rb', line 12 def file @file end |
Class Method Details
.intercepts?(error) ⇒ Boolean
Is this error one that should be reformatted?
18 19 20 |
# File 'lib/wolverine/lua_error.rb', line 18 def self.intercepts? error error. =~ PATTERN end |