module Honeybadger::Plugins::LambdaExtension
def hb_wrap_handler(*handler_names)
end
def self.my_handler_1(event:, context:)
hb_wrap_handler :my_handler_1, :my_handler_2
extend ::Honeybadger::Plugins::LambdaExtension
class MyLambdaApp
end
def my_handler_1(event:, context:)
hb_wrap_handler :my_handler_1, :my_handler_2
# Automatically included in the top-level main object
Usage:
Wrap Lambda handlers so exceptions can be automatically captured
def hb_wrap_handler(*handler_names) mod = Module.new do handler_names.each do |handler| define_method(handler) do |event:, context:| Honeybadger.context(aws_request_id: context.aws_request_id) if context.respond_to?(:aws_request_id) super(event: event, context: context) rescue => e Honeybadger.notify(e) raise end end end singleton_class.prepend(mod) Kernel.singleton_class.prepend(mod) if self == TOPLEVEL_BINDING.eval("self") end