Module: Byebug::Helpers::EvalHelper
- Included in:
- BreakCommand, CatchCommand, CommandProcessor, DisplayCommand, VarHelper, MethodCommand, VarCommand::ConstCommand
- Defined in:
- lib/byebug/helpers/eval.rb
Overview
Utilities to assist evaluation of code strings
Instance Method Summary collapse
-
#error_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, handling the errors at an error level.
-
#silent_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, returning nil in an error happens.
-
#single_thread_eval(expression) ⇒ Object
Evaluates an
expression
that doesn’t deal with threads. -
#thread_safe_eval(expression) ⇒ Object
Evaluates
expression
that might manipulate threads. -
#warning_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, handling the errors at a warning level.
Instance Method Details
#error_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, handling the errors at an error level.
37 38 39 |
# File 'lib/byebug/helpers/eval.rb', line 37 def error_eval(str, binding = frame._binding) safe_eval(str, binding) { |e| fail(e, msg(e)) } end |
#silent_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, returning nil in an error happens.
29 30 31 |
# File 'lib/byebug/helpers/eval.rb', line 29 def silent_eval(str, binding = frame._binding) safe_eval(str, binding) { |_e| nil } end |
#single_thread_eval(expression) ⇒ Object
Evaluates an expression
that doesn’t deal with threads
21 22 23 |
# File 'lib/byebug/helpers/eval.rb', line 21 def single_thread_eval(expression) warning_eval(expression) end |
#thread_safe_eval(expression) ⇒ Object
Evaluates expression
that might manipulate threads
12 13 14 |
# File 'lib/byebug/helpers/eval.rb', line 12 def thread_safe_eval(expression) allowing_other_threads { single_thread_eval(expression) } end |
#warning_eval(str, binding = frame._binding) ⇒ Object
Evaluates a string containing Ruby code in a specific binding, handling the errors at a warning level.
45 46 47 |
# File 'lib/byebug/helpers/eval.rb', line 45 def warning_eval(str, binding = frame._binding) safe_eval(str, binding) { |e| errmsg(msg(e)) } end |