Class: RailsErrorDashboard::Subscribers::BreadcrumbSubscriber
- Inherits:
-
Object
- Object
- RailsErrorDashboard::Subscribers::BreadcrumbSubscriber
- Defined in:
- lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb
Overview
Registers ActiveSupport::Notifications subscribers for breadcrumb collection.
Each subscriber appends breadcrumbs to the thread-local ring buffer via BreadcrumbCollector.add. The subscribers are registered once at boot when enable_breadcrumbs is true.
SAFETY RULES (HOST_APP_SAFETY.md):
-
Every subscriber wrapped in rescue => e; nil
-
Never raise from subscriber callbacks
-
Skip if buffer is nil (not in a request context)
-
Filter out internal gem queries to avoid recursion
Constant Summary collapse
- SQL_MESSAGE_MAX =
200
Class Attribute Summary collapse
-
.subscriptions ⇒ Object
readonly
Returns the value of attribute subscriptions.
Class Method Summary collapse
-
.subscribe! ⇒ Array
Register all breadcrumb subscribers.
-
.unsubscribe! ⇒ Object
Remove all breadcrumb subscribers.
Class Attribute Details
.subscriptions ⇒ Object (readonly)
Returns the value of attribute subscriptions.
23 24 25 |
# File 'lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb', line 23 def subscriptions @subscriptions end |
Class Method Details
.subscribe! ⇒ Array
Register all breadcrumb subscribers
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb', line 27 def subscribe! @subscriptions = [] @subscriptions << subscribe_sql @subscriptions << subscribe_controller @subscriptions << subscribe_cache_read @subscriptions << subscribe_cache_write @subscriptions << subscribe_job @subscriptions << subscribe_mailer @subscriptions << subscribe_deprecation @subscriptions end |
.unsubscribe! ⇒ Object
Remove all breadcrumb subscribers
42 43 44 45 46 47 48 49 |
# File 'lib/rails_error_dashboard/subscribers/breadcrumb_subscriber.rb', line 42 def unsubscribe! @subscriptions.each do |sub| ActiveSupport::Notifications.unsubscribe(sub) if sub rescue => e nil end @subscriptions = [] end |