# Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true # rubocop:disable Object/Freeze module Contrast module Utils # A utility class where a series of commonly used Strings and other # commonly used objects can be store and frozen to prevent unnecessary # duplication. class ObjectShare # Strings AND = '&' OR = '||' PIPE = '|' ASTERISK = '*' BACK_SLASH = '\\' EMPTY_STRING = '' COLON = ':' COMMA = ',' DASH = '-' DOUBLE_QUOTE = '"' EQUALS = '=' EXCLAMATION = '!' HTTP_SCORE = 'HTTP_' HTTP_START = 'http:' HTTPS_START = 'https:' NEW_LINE = "\n" NIL_STRING = 'nil' PERIOD = '.' PLUS_SIGN = '+' POUND_SIGN = HASH_CHAR = '#' QUESTION_MARK = '?' RETURN = "\r" SEMICOLON = ';' SINGLE_QUOTE = '\'' SLASH = '/' SPACE = ' ' UNDERSCORE = '_' DOUBLE_UNDERSCORE = '__' AT = '@' LEFT_ANGLE = '<' RIGHT_ANGLE = '>' LEFT_BRACKET = '[' RIGHT_BRACKET = ']' LEFT_PAREN = '(' RIGHT_PAREN = ')' COLON_SLASH_SLASH = '://' TICK = '`' BACK_TICK = '`' LEFT_CURLY = '{' RIGHT_CURLY = '}' DOLLAR_SIGN = '$' CARROT = '^' PERCENT = '%' LETTER_Q = 'Q' OR_STRING = 'or' DOUBLE_QUOTE_ESCAPED = '"' READ_FLAG = 'r' WRITE_FLAG = 'w' READ_WRITE_FLAG = 'rw' PARENT_PATH = '..' RUBY = 'Ruby' CACHE = 'cache' GEM_SUFFIX = '.gem' CONTRAST_METHOD_START = 'cs__' CONTRAST_PATCHED_METHOD_START = 'cs__patched_' CONTRAST_MODULE_START = 'Contrast::' ANONYMOUS_CLASS_MARKER = '#<' DOUBLE_COLON = '::' EMPTY_ARRAY = [].freeze EMPTY_HASH = {}.freeze EMPTY_TRIPLE = [EMPTY_STRING, EMPTY_STRING, EMPTY_STRING].freeze # RegExps DIGIT_REGEXP = /[[:digit:]]/.freeze WHITE_SPACE_REGEXP = /\s/.freeze NOT_WHITE_SPACE_REGEXP = /[^\s]/.freeze WINDOWS_REGEXP = /cygwin|mswin|mingw|bccwin|wince|emx/.freeze # Messages OVERRIDE_MESSAGE = 'A security filter prevented original response from being returned.' # Configs TRUE = 'true' FALSE = 'false' CLASS = 'Class' MODULE = 'Module' BRACKET_INTERPOLATION_START = '#{' OBJECT_KEY = 'O' PARAMETER_KEY = 'P' RETURN_KEY = 'R' UNKNOWN = 'unknown' INDEX = 'index' VERSION_2_5_0 = '2.5.0' VERSION_2_4_2 = '2.4.2' VERSION_2_4_1 = '2.4.1' VERSION_2_4_0 = '2.4.0' VERSION_2_3_5 = '2.3.5' VERSION_2_3_4 = '2.3.4' VERSION_2_3_0 = '2.3.0' VERSION_2_0_4 = '2.0.4' VERSION_2_0_0 = '2.0.0' end end end # rubocop:enable Object/Freeze