Module: Byebug::Helpers::EvalHelper

Overview

Utilities to assist evaluation of code strings

Instance Method Summary collapse

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

Parameters:

  • expression (String)

    Expression to evaluate



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

Parameters:

  • expression (String)

    Expression to evaluate



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