Sha256: c3601c4c3dd60f144de3ade391780fa02d83ae3f74593cc3fa25d5d467e2b959
Contents?: true
Size: 1.2 KB
Versions: 6
Compression:
Stored size: 1.2 KB
Contents
module Rails module Instrumentation module Subscriber def self.included(base) base.extend ClassMethods end module ClassMethods def subscribe(exclude_events: []) @subscriber_mutex = Mutex.new if @subscriber_mutex.nil? # clear unsubscribe @subscribers = [] @subscriber_mutex.synchronize do self::EVENTS.each do |event_name| full_name = "#{event_name}.#{self::EVENT_NAMESPACE}" next if exclude_events.include? full_name @subscribers << Utils.register_subscriber(full_name: full_name, event_name: event_name, handler_module: self) end end end def unsubscribe return if @subscribers.nil? || @subscriber_mutex.nil? @subscriber_mutex.synchronize do @subscribers.each do |subscriber| ::ActiveSupport::Notifications.unsubscribe(subscriber) end end end def span_tags(tags) self::BASE_TAGS.clone.merge(tags) end end end end end
Version data entries
6 entries across 6 versions & 2 rubygems