Sha256: eb1aebf9d44896e8d982fc17b2a7487c44285c84803cf7313b79d45d355cbaa9
Contents?: true
Size: 1.31 KB
Versions: 63
Compression:
Stored size: 1.31 KB
Contents
module Skylight # Ensure the version of AS:N being used is recent enough begin # Attempt to reference an internal class only present in the new AS::Notifications ActiveSupport::Notifications::Fanout::Subscribers rescue NameError # The things we do... class ::ActiveSupport::Notifications::Fanout attr_reader :subscribers class Subscriber attr_reader :pattern, :delegate end end notifier = ActiveSupport::Notifications.notifier # If the class is missing, require our vendored AS::N require 'skylight/vendor/active_support/notifications' if notifier.subscribers.respond_to?(:each) notifier.subscribers.each do |sub| pattern = sub.respond_to?(:pattern) && sub.pattern delegate = sub.respond_to?(:delegate) && sub.delegate if pattern && delegate ActiveSupport::Notifications.subscribe(pattern, delegate) end end end end end if defined?(ActiveSupport::Notifications::Fanout::Subscribers::Evented) # Handle early RCs of rails 4.0 # @api private class ActiveSupport::Notifications::Fanout::Subscribers::Evented unless method_defined?(:publish) def publish(name, *args) if @delegate.respond_to?(:publish) @delegate.publish name, *args end end end end end
Version data entries
63 entries across 63 versions & 2 rubygems