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:



515
516
517
518
519
520
521
522
523
524
# File 'lib/logbrew/rails_integration.rb', line 515

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



526
527
528
529
530
531
532
533
534
# File 'lib/logbrew/rails_integration.rb', line 526

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