Sha256: fc69aa6e4f492667ead720d132f4f0ed7c5b2dbeac5d6588df5f53367ad96c24

Contents?: true

Size: 1.96 KB

Versions: 1

Compression:

Stored size: 1.96 KB

Contents

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

# Top-level namespace for Contrast Security agent
module Contrast
end

# Some developers override various methods on Object, which can often involve
# changing expected method parity/behavior which in turn prevents us from being
# able to reliably use affected methods.
# We alias these method so that we always have access to them.
#
# Because we use these methods in constructing classes (e.g., calling #freeze
# on constants within class definitions) we do this aliasing ASAP.
class Object
  alias_method :cs__class, :class
  alias_method :cs__freeze, :freeze
  alias_method :cs__frozen?, :frozen?
  alias_method :cs__is_a?, :is_a?
  alias_method :cs__method, :method
  alias_method :cs__respond_to?, :respond_to?
  alias_method :cs__singleton_class, :singleton_class
end

require_relative './contrast/agent/require_state' # rubocop:disable  Kernel/RequireRelative

# We have to do this here BEOFRE we require anything b/c we can't use the
# Contrast require methods without it.
module Kernel
  def cs__scoped_require path
    Contrast::Agent::RequireStates.enter
    require(path) # rubocop:disable  Kernel/Require
  ensure
    Contrast::Agent::RequireStates.exit
  end
end

# component interface for class creation
# config gets built as a consequence of this require
cs__scoped_require 'contrast/components/interface'

# shared configuration support
cs__scoped_require 'contrast/config'
cs__scoped_require 'contrast/configuration'

cs__scoped_require 'contrast/agent/version'

# errors and exceptions
cs__scoped_require 'contrast/security_exception'
cs__scoped_require 'contrast/internal_exception'

# shared utils
cs__scoped_require 'contrast/utils/timer'
cs__scoped_require 'contrast/utils/random_util'
cs__scoped_require 'contrast/utils/preflight_util'

cs__scoped_require 'contrast/utils/assess/sampling_util'
cs__scoped_require 'contrast/agent'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contrast-agent-3.11.0 lib/contrast.rb