# frozen_string_literal: true # noinspection RubyClassVariableUsageInspection class ResponseCodeStatsMiddleware def initialize(app) @app = app @@code_metrics = {} end def call(env) status, headers, response = @app.call(env) @@code_metrics[status] ||= 0 @@code_metrics[status] += 1 [status, headers, response] end def self.read_and_reset_metrics metrics = @@code_metrics.dup @@code_metrics.clear metrics end end