Class: Julewire::ActiveJob::Subscribers::Event

Inherits:
Object
  • Object
show all
Extended by:
Core::Integration::SubscriberInstall
Includes:
Core::Integration::EventSubscriber
Defined in:
lib/julewire/active_job/subscribers/event.rb

Constant Summary collapse

STRUCTURED_EVENT_FILE =
"active_job/structured_event_subscriber"
ERROR_EVENTS =
%w[
  active_job.retry_stopped
  active_job.discarded
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.install!(configuration, event_reporter: nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/julewire/active_job/subscribers/event.rb', line 20

def install!(configuration, event_reporter: nil)
  return reset! unless configuration.structured_events?

  Core::Integration::Lifecycle.require_optional(STRUCTURED_EVENT_FILE)
  reporter = event_reporter || Julewire::RailsSupport::EventReporter.default
  return unless Julewire::RailsSupport::EventReporter.subscribable?(reporter)

  install_subscriber(configuration, enabled: true) do |subscriber|
    Julewire::RailsSupport::EventReporter.subscribe(reporter, subscriber) { subscriber.accept?(it) }
  end
end

Instance Method Details

#accept?(event) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
41
# File 'lib/julewire/active_job/subscribers/event.rb', line 33

def accept?(event)
  return false unless @configuration.structured_events?

  prefixes = @configuration.event_prefixes
  return true if prefixes.nil?

  name = event[:name].to_s
  Array(prefixes).any? { name.start_with?(it.to_s) }
end