Class: RailsErrorDashboard::Subscribers::ActiveStorageSubscriber
- Inherits:
-
Object
- Object
- RailsErrorDashboard::Subscribers::ActiveStorageSubscriber
- Defined in:
- lib/rails_error_dashboard/subscribers/active_storage_subscriber.rb
Overview
Registers ActiveSupport::Notifications subscribers for ActiveStorage events.
ActiveStorage emits:
-
service_upload.active_storage — file uploaded to storage service
-
service_download.active_storage — file downloaded from storage service
-
service_streaming_download.active_storage — streaming download
-
service_delete.active_storage — file deleted from storage service
-
service_delete_prefixed.active_storage — batch delete by prefix
-
service_exist.active_storage — existence check
Each event is captured as a breadcrumb with category “active_storage”, allowing correlation between storage operations and error spikes.
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)
Constant Summary collapse
- EVENTS =
%w[ service_upload.active_storage service_download.active_storage service_streaming_download.active_storage service_delete.active_storage service_delete_prefixed.active_storage service_exist.active_storage ].freeze
Class Attribute Summary collapse
-
.subscriptions ⇒ Object
readonly
Returns the value of attribute subscriptions.
Class Method Summary collapse
-
.subscribe! ⇒ Array
Register all ActiveStorage event subscribers.
-
.unsubscribe! ⇒ Object
Remove all ActiveStorage subscribers.
Class Attribute Details
.subscriptions ⇒ Object (readonly)
Returns the value of attribute subscriptions.
36 37 38 |
# File 'lib/rails_error_dashboard/subscribers/active_storage_subscriber.rb', line 36 def subscriptions @subscriptions end |
Class Method Details
.subscribe! ⇒ Array
Register all ActiveStorage event subscribers
40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_error_dashboard/subscribers/active_storage_subscriber.rb', line 40 def subscribe! @subscriptions = [] EVENTS.each do |event_name| @subscriptions << subscribe_event(event_name) end @subscriptions end |
.unsubscribe! ⇒ Object
Remove all ActiveStorage subscribers
51 52 53 54 55 56 57 58 |
# File 'lib/rails_error_dashboard/subscribers/active_storage_subscriber.rb', line 51 def unsubscribe! @subscriptions.each do |sub| ActiveSupport::Notifications.unsubscribe(sub) if sub rescue => e nil end @subscriptions = [] end |