Module: Olyx::Guardrails::Secrets::CustomPatternCompiler

Defined in:
lib/olyx/guardrails/secrets/custom_pattern_compiler.rb

Overview

Compiles bounded, non-empty custom secret patterns.

Constant Summary collapse

TIMEOUT =
0.1

Class Method Summary collapse

Class Method Details

.call(pattern) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/olyx/guardrails/secrets/custom_pattern_compiler.rb', line 12

def call(pattern)
  compiled = Regexp.new(pattern, Regexp::IGNORECASE, timeout: TIMEOUT)
  raise ArgumentError, 'custom patterns must not match empty text' if compiled.match?('')

  compiled
rescue RegexpError => error
  raise ArgumentError, "invalid custom pattern #{pattern.inspect}: #{error.message}"
end