class Bigcommerce::Prometheus::Servers::Thin::Controllers::BaseController

Base thin controller for prometheus metrics

Public Class Methods

new(request:, response:, server_metrics:, collector:, logger:) click to toggle source

@param [Rack::Request] request @param [Rack::Response] response @param [Bigcommerce::Prometheus::Servers::Thin::ServerMetrics] @param [PrometheusExporter::Server::Collector] collector @param [Logger] logger

# File lib/bigcommerce/prometheus/servers/thin/controllers/base_controller.rb, line 34
def initialize(request:, response:, server_metrics:, collector:, logger:)
  @request = request
  @response = response
  @collector = collector
  @server_metrics = server_metrics
  @logger = logger
end

Public Instance Methods

handle() click to toggle source
# File lib/bigcommerce/prometheus/servers/thin/controllers/base_controller.rb, line 42
def handle
  call
  @response.finish
end
set_header(key, value) click to toggle source

@param [String] key @param [String] value

# File lib/bigcommerce/prometheus/servers/thin/controllers/base_controller.rb, line 51
def set_header(key, value)
  if @response.respond_to?(:add_header) # rack 2.0+
    @response.add_header(key.to_s, value.to_s)
  else
    @response[key.to_s] = value.to_s
  end
end