Class: Magick::Rails::EventSubscriber

Inherits:
Object
  • Object
show all
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

Constructor Details

#initializeEventSubscriber

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_allObject

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