Module: LogBrew::Rails

Defined in:
lib/logbrew/rails.rb,
lib/logbrew/rails_integration.rb

Overview

Process-safe Rails integration installed by RailsRailtie.

Defined Under Namespace

Modules: ActiveJobExtension, OutboundHttp Classes: Configuration, ErrorReporter, RequestMiddleware, Runtime

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#runtimeObject (readonly)

Returns the value of attribute runtime.



9
10
11
# File 'lib/logbrew/rails_integration.rb', line 9

def runtime
  @runtime
end

Class Method Details

.clientObject



31
32
33
# File 'lib/logbrew/rails.rb', line 31

def client
  @runtime&.client
end

.delivery_healthObject



35
36
37
# File 'lib/logbrew/rails.rb', line 35

def delivery_health
  @runtime&.delivery_health
end

.install(application:, environment: ENV) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/logbrew/rails.rb', line 11

def install(application:, environment: ENV)
  @installation_mutex ||= Mutex.new
  @installation_mutex.synchronize do
    return @runtime unless @runtime.nil?

    configuration = Configuration.from_environment(
      environment,
      application_name: application_name(application),
      rails_environment: ::Rails.env.to_s,
      rails_version: ::Rails.version.to_s
    )
    @runtime = Runtime.new(
      configuration,
      on_error: ->(stage, error) { log_capture_failure(application, stage, error) }
    )
    register_shutdown
    @runtime
  end
end

.shutdownObject



39
40
41
# File 'lib/logbrew/rails.rb', line 39

def shutdown
  @runtime&.shutdown
end