Module: Rails::Instrumentation::Subscriber::ClassMethods
- Defined in:
- lib/rails/instrumentation/subscriber.rb
Instance Method Summary collapse
Instance Method Details
#subscribe(exclude_events: []) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rails/instrumentation/subscriber.rb', line 9 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 |
#unsubscribe ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/rails/instrumentation/subscriber.rb', line 29 def unsubscribe return if @subscribers.nil? || @subscriber_mutex.nil? @subscriber_mutex.synchronize do @subscribers.each do |subscriber| ::ActiveSupport::Notifications.unsubscribe(subscriber) end end end |