Module: JetstreamBridge::ConfigHelpers::Lifecycle

Defined in:
lib/jetstream_bridge/config_helpers/lifecycle.rb

Class Method Summary collapse

Class Method Details

.default_rails_logger(app = nil) ⇒ Object



27
28
29
30
31
# File 'lib/jetstream_bridge/config_helpers/lifecycle.rb', line 27

def default_rails_logger(app = nil)
  return app.logger if app.respond_to?(:logger)

  defined?(Rails) && Rails.respond_to?(:logger) ? Rails.logger : nil
end

.setup(logger: nil, rails_app: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/jetstream_bridge/config_helpers/lifecycle.rb', line 8

def setup(logger: nil, rails_app: nil)
  app = rails_app
  app ||= Rails.application if defined?(Rails) && Rails.respond_to?(:application)

  # Gracefully no-op when Rails isn't available (e.g., non-Rails runtimes or early boot)
  return unless app

  effective_logger = logger || default_rails_logger(app)

  app.config.after_initialize do
    JetstreamBridge.startup!
    effective_logger&.info('JetStream Bridge connected successfully')
  rescue StandardError => e
    effective_logger&.error("Failed to connect to JetStream: #{e.message}")
  end

  Kernel.at_exit { JetstreamBridge.shutdown! }
end