module Honeybadger::Plugins::LocalVariables::ExceptionExtension

def self.included(base)

def self.included(base)
  base.send(:alias_method, :set_backtrace_without_honeybadger, :set_backtrace)
  base.send(:alias_method, :set_backtrace, :set_backtrace_with_honeybadger)
end

def __honeybadger_bindings_stack

def __honeybadger_bindings_stack
  @__honeybadger_bindings_stack || []
end

def set_backtrace_with_honeybadger(*args, &block)

def set_backtrace_with_honeybadger(*args, &block)
  if caller.none? { |loc| loc.match(::Honeybadger::Backtrace::Line::INPUT_FORMAT) && Regexp.last_match(1) == __FILE__ }
    @__honeybadger_bindings_stack = binding.callers.drop(1)
  end
  set_backtrace_without_honeybadger(*args, &block)
end