Sha256: 041556bc8031faf1045eee64721e0a6782ece43e2b5f5653304bd9a22075d884

Contents?: true

Size: 848 Bytes

Versions: 20

Compression:

Stored size: 848 Bytes

Contents

# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

module Contrast
  module Utils
    module Assess
      # keep track of object properties and events data
      class ObjectStore
        def initialize capacity = 500
          @capacity = capacity
          @cache = {}
        end

        def get
          @cache
        end

        def [] key
          @cache[key]
        end

        def delete key
          @cache.delete(key)
        end

        # We would keep object ids with capacity.
        # If a reference is kept to an object only by it's id,
        # It would be CG-ted safely.
        def []= key, value
          @cache[key] = value
          @cache.shift if @cache.length > @capacity
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
contrast-agent-6.11.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.10.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.9.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.8.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.7.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.5 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.4 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.3 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.2 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.1 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.6.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.5.1 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.5.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.4.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.3.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.2.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.1.2 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.1.1 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.1.0 lib/contrast/utils/assess/object_store.rb
contrast-agent-6.0.0 lib/contrast/utils/assess/object_store.rb