Sha256: 5f87071440f57255353635b3995c8717215956ac41b9e702a43a62989d03c5d0
Contents?: true
Size: 1.57 KB
Versions: 8
Compression:
Stored size: 1.57 KB
Contents
# Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'base64' require 'set' require 'contrast/agent/assess/property/evented' require 'contrast/agent/assess/property/tagged' require 'contrast/agent/assess/property/updated' require 'contrast/utils/prevent_serialization' module Contrast module Agent module Assess # Properties associated with a tracked String. If String is monkey # patched this object is lazily generated on affected Strings. # # This class acts as a holder for the Assess information we need in order # to properly convey the events that lead up to the state of the tracked # user input. class Properties include Contrast::Utils::PreventSerialization include Contrast::Agent::Assess::Property::Evented include Contrast::Agent::Assess::Property::Tagged include Contrast::Agent::Assess::Property::Updated attr_accessor :dupped_from # CONTRAST-36937 # Creating these on Properties is expensive. We want to delay this for # as long as possible. def properties @_properties ||= {} end def add_properties hash return unless hash properties.merge!(hash) end def add_property name, value return unless name && value properties[name] = value end def dup ret = super ret.dupped_from = __id__ ret end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems