Sha256: a7b2ed31ee774dd8944260930f0c8276c5d3f5bdbf4e132bbf8f5bcb217332ab

Contents?: true

Size: 619 Bytes

Versions: 2

Compression:

Stored size: 619 Bytes

Contents

class Exception
  original_set_backtrace = instance_method(:set_backtrace)

  if WebConsole.binding_of_caller_available?
    define_method :set_backtrace do |*args|
      unless Thread.current[:__web_console_exception_lock]
        Thread.current[:__web_console_exception_lock] = true
        begin
          @__web_console_bindings_stack = binding.callers.drop(1)
        ensure
          Thread.current[:__web_console_exception_lock] = false
        end
      end

      original_set_backtrace.bind(self).call(*args)
    end
  end

  def __web_console_bindings_stack
    @__web_console_bindings_stack || []
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
web-console-2.0.0.beta2 lib/web_console/exception_extension.rb
web-console-2.0.0.beta1 lib/web_console/exception_extension.rb