Class: LogBrew::Rails::RequestMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/logbrew/rails_integration.rb

Overview

Rails middleware entry point. Capture failures never call the app twice.

Instance Method Summary collapse

Constructor Details

#initialize(app, runtime: LogBrew::Rails.runtime) ⇒ RequestMiddleware

Returns a new instance of RequestMiddleware.

Raises:



489
490
491
492
493
494
495
496
497
498
# File 'lib/logbrew/rails_integration.rb', line 489

def initialize(app, runtime: LogBrew::Rails.runtime)
  raise SdkError.new("validation_error", "Rails app must respond to call") unless app.respond_to?(:call)
  raise SdkError.new("configuration_error", "LogBrew Rails runtime is not installed") if runtime.nil?

  @app = app
  @runtime = runtime
  @mutex = Mutex.new
  @adapter_client = nil
  @adapter = nil
end

Instance Method Details

#call(environment) ⇒ Object



500
501
502
503
504
505
506
507
508
# File 'lib/logbrew/rails_integration.rb', line 500

def call(environment)
  active_client = @runtime.client
  return @app.call(environment) if active_client.nil?

  adapter = adapter_for(active_client)
  return @app.call(environment) if adapter.nil?

  adapter.call(environment)
end