Sha256: c4e2c4547d98029c334feec319c7e33af8361ed118e606c7a31f1d2063d53d6d
Contents?: true
Size: 1.4 KB
Versions: 6
Compression:
Stored size: 1.4 KB
Contents
module Airbrake module Rack # Adds context (URL, User-Agent, framework version, controller and more). # # @since v5.7.0 class ContextFilter # @return [Integer] attr_reader :weight def initialize @framework_version = if defined?(::Rails) && ::Rails.respond_to?(:version) { 'rails' => ::Rails.version } elsif defined?(::Sinatra) { 'sinatra' => Sinatra::VERSION } else { 'rack_version' => ::Rack.version, 'rack_release' => ::Rack.release } end @weight = 99 end # @see Airbrake::FilterChain#refine def call(notice) return unless (request = notice.stash[:rack_request]) context = notice[:context] context[:url] = request.url context[:userAddr] = request.ip context[:userAgent] = request.user_agent add_framework_version(context) controller = request.env['action_controller.instance'] return unless controller context[:component] = controller.controller_name context[:action] = controller.action_name end private def add_framework_version(context) if context.key?(:versions) context[:versions].merge!(@framework_version) else context[:versions] = @framework_version end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems