Module: Appsignal::UpdateActiveSupport

Defined in:
lib/appsignal/update_active_support.rb

Class Method Summary collapse

Class Method Details

.runObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/appsignal/update_active_support.rb', line 3

def self.run
  # Get the old subscribers if present
  old_notifier = ActiveSupport::Notifications.notifier
  subscribers  = old_notifier.instance_variable_get('@subscribers') || []

  # Require the newer notifications
  require 'vendor/active_support/notifications'

  # Re-subscribe the old subscribers
  subscribers.each do |sub|
    pattern  = sub.instance_variable_get('@pattern')
    delegate = sub.instance_variable_get('@delegate')
    next unless pattern && delegate
    ActiveSupport::Notifications.subscribe(pattern, delegate)
  end
end