class Rack::ObjectCounter

Constants

LABEL
VERSION

Public Class Methods

logger=(logger, verbose: false) click to toggle source
# File lib/rack/object_counter.rb, line 21
def self.logger=(logger, verbose: false)
  @@logger = logger
  @@verbose = verbose
end
new(app) click to toggle source
# File lib/rack/object_counter.rb, line 6
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/object_counter.rb, line 10
def call(env)
  GC.disable
  before = ObjectSpace.count_objects({})
  app = @app.call(env)
  after = ObjectSpace.count_objects({})
  after.each { |k,v| after[k] = v - before[k] }
  @@logger.info %(#{LABEL} #{env["REQUEST_METHOD"]} #{env["PATH_INFO"]} #{after})
  GC.enable
  app
end