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:



743
744
745
746
747
748
749
750
751
752
# File 'lib/logbrew/rails_integration.rb', line 743

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



754
755
756
757
758
759
760
761
762
# File 'lib/logbrew/rails_integration.rb', line 754

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?

  RequestOperations.within { adapter.call(environment) }
end