# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'forwardable' require 'contrast/utils/object_share' module Contrast module Config # This is the base for our configuration classes. It is intended to facilitate the translation of the Common # Configuration settings to usable Ruby classes. module BaseConfiguration extend Forwardable AT_UNDERSCORE = '@_' def to_hash hsh = {} instance_variables.each do |iv| # strip the '@' of '@_' to get the key string_iv = iv.to_s key = if string_iv.include?(AT_UNDERSCORE) string_iv[2..] else string_iv[1..] end hsh[key] = send(key.to_sym) end hsh end end end end