class Exception

Public Instance Methods

bindings() click to toggle source

The bindings in which the exception originated in.

# File lib/web_console/integration/cruby.rb, line 9
def bindings
  @bindings || __better_errors_bindings_stack
end
set_backtrace_with_binding_of_caller(*args) click to toggle source

CRuby calls set_backtrace every time it raises an exception. Overriding it to assign the bindings.

# File lib/web_console/integration/cruby.rb, line 20
def set_backtrace_with_binding_of_caller(*args)
  # Thanks to @charliesome who wrote this bit for better_errors.
  unless Thread.current[:__web_console_exception_lock]
    Thread.current[:__web_console_exception_lock] = true
    begin
      # Raising an exception here will cause all of the rubies to go into a
      # stack overflow. Some rubies may even segfault. See
      # https://bugs.ruby-lang.org/issues/10164 for details.
      @bindings = binding.callers.drop(1)
    ensure
      Thread.current[:__web_console_exception_lock] = false
    end
  end

  set_backtrace_without_binding_of_caller(*args)
end