# typed: ignore # Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html require 'sqreen/log' module Sqreen # A simple size limited queue. # When trying to enqueue more than the capacity # the older elements will get thrown class CappedQueue < Queue attr_reader :capacity def initialize(capacity) @capacity = capacity super() end alias original_push push def push(value) until size < @capacity discarded = pop Sqreen.log.debug { "Discarded from queue: #{discarded}" } end Sqreen.log.debug { "Pushed to the queue: #{value}" } original_push(value) end end end