Class: Magick::Rails::EventSubscriber
- Inherits:
-
Object
- Object
- Magick::Rails::EventSubscriber
- Defined in:
- lib/magick/rails/event_subscriber.rb
Overview
Example event subscriber for Rails 8.1+ structured events Users can create custom subscribers to handle Magick events
Instance Method Summary collapse
-
#emit(event) ⇒ Object
Implement the emit method required by Rails 8.1 event system.
-
#initialize ⇒ EventSubscriber
constructor
A new instance of EventSubscriber.
-
#subscribe_to(event_name) ⇒ Object
Subscribe to a specific event.
-
#subscribe_to_all ⇒ Object
Subscribe to all Magick events.
Constructor Details
#initialize ⇒ EventSubscriber
Returns a new instance of EventSubscriber.
8 9 10 |
# File 'lib/magick/rails/event_subscriber.rb', line 8 def initialize @subscribed = false end |
Instance Method Details
#emit(event) ⇒ Object
Implement the emit method required by Rails 8.1 event system
31 32 33 34 |
# File 'lib/magick/rails/event_subscriber.rb', line 31 def emit(event) # event is a hash with :name, :payload, :source_location, :tags, :context handle_event(event) end |
#subscribe_to(event_name) ⇒ Object
Subscribe to a specific event
23 24 25 26 27 28 |
# File 'lib/magick/rails/event_subscriber.rb', line 23 def subscribe_to(event_name) return unless Events.rails81? full_event_name = Events::EVENTS[event_name] || event_name.to_s Rails.event.subscribe(full_event_name, self) end |
#subscribe_to_all ⇒ Object
Subscribe to all Magick events
13 14 15 16 17 18 19 20 |
# File 'lib/magick/rails/event_subscriber.rb', line 13 def subscribe_to_all return unless Events.rails81? Events::EVENTS.each_value do |event_name| subscribe_to(event_name) end @subscribed = true end |