lib/airbrake.rb in airbrake-5.0.5 vs lib/airbrake.rb in airbrake-5.1.0

- old
+ new

@@ -17,5 +17,31 @@ require 'airbrake/rake/task_ext' if defined?(Rake::Task) require 'airbrake/resque/failure' if defined?(Resque) require 'airbrake/sidekiq/error_handler' if defined?(Sidekiq) require 'airbrake/delayed_job/plugin' if defined?(Delayed) + +## +# This module reopens the original Airbrake module from airbrake-ruby and adds +# integration specific methods. +module Airbrake + class << self + ## + # Attaches a callback (builder) that runs every time the Rack integration + # reports an error. Can be used to attach additional data from the Rack + # request. + # + # @example Adding remote IP from the Rack environment + # Airbrake.add_rack_builder do |notice, request| + # notice[:params][:remoteIp] = request.env['REMOTE_IP'] + # end + # + # @yieldparam notice [Airbrake::Notice] notice that will be sent to Airbrake + # @yieldparam request [Rack::Request] current rack request + # @yieldreturn [void] + # @return [void] + # @since 5.1.0 + def add_rack_builder(&block) + Airbrake::Rack::NoticeBuilder.add_builder(&block) + end + end +end