Sha256: 4d96975c1f0b04b3b95d89433d6098c0ee433aa8d9d284d675df6dc9554f85c5
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
module Bugsnag::Breadcrumbs class OnBreadcrumbCallbackList def initialize(configuration) @callbacks = Set.new @mutex = Mutex.new @configuration = configuration end ## # @param callback [Proc, Method, #call] # @return [void] def add(callback) @mutex.synchronize do @callbacks.add(callback) end end ## # @param callback [Proc, Method, #call] # @return [void] def remove(callback) @mutex.synchronize do @callbacks.delete(callback) end end ## # @param breadcrumb [Breadcrumb] # @return [void] def call(breadcrumb) @callbacks.each do |callback| begin should_continue = callback.call(breadcrumb) rescue StandardError => e @configuration.warn("Error occurred in on_breadcrumb callback: '#{e}'") @configuration.warn("on_breadcrumb callback stacktrace: #{e.backtrace.inspect}") end # only stop if should_continue is explicity 'false' to allow callbacks # to return 'nil' if should_continue == false breadcrumb.ignore! break end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bugsnag-6.27.1 | lib/bugsnag/breadcrumbs/on_breadcrumb_callback_list.rb |