Module: Promptmenot

Defined in:
lib/promptmenot.rb,
lib/promptmenot/match.rb,
lib/promptmenot/errors.rb,
lib/promptmenot/result.rb,
lib/promptmenot/pattern.rb,
lib/promptmenot/railtie.rb,
lib/promptmenot/version.rb,
lib/promptmenot/detector.rb,
lib/promptmenot/sanitizer.rb,
lib/promptmenot/configuration.rb,
lib/promptmenot/patterns/base.rb,
lib/promptmenot/pattern_registry.rb,
lib/promptmenot/patterns/role_manipulation.rb,
lib/promptmenot/patterns/indirect_injection.rb,
lib/generators/promptmenot/install_generator.rb,
lib/promptmenot/patterns/delimiter_injection.rb,
lib/promptmenot/patterns/resource_extraction.rb,
lib/promptmenot/patterns/context_manipulation.rb,
lib/promptmenot/patterns/encoding_obfuscation.rb,
lib/promptmenot/patterns/direct_instruction_override.rb

Defined Under Namespace

Modules: Generators, Patterns Classes: Configuration, ConfigurationError, Detector, Error, Match, Pattern, PatternError, PatternRegistry, Railtie, Result, Sanitizer

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.configurationObject



29
30
31
# File 'lib/promptmenot.rb', line 29

def configuration
  @monitor.synchronize { @configuration ||= Configuration.new }
end

.configureObject



33
34
35
36
37
38
# File 'lib/promptmenot.rb', line 33

def configure
  @monitor.synchronize do
    yield(configuration)
    register_custom_patterns
  end
end

.detect(text, sensitivity: nil) ⇒ Object



61
62
63
# File 'lib/promptmenot.rb', line 61

def detect(text, sensitivity: nil)
  Detector.new(sensitivity: sensitivity).detect(text)
end

.registryObject



40
41
42
# File 'lib/promptmenot.rb', line 40

def registry
  @monitor.synchronize { @registry ||= build_registry }
end

.reset!Object



44
45
46
47
48
49
# File 'lib/promptmenot.rb', line 44

def reset!
  @monitor.synchronize do
    @configuration = Configuration.new
    @registry = nil
  end
end

.rootObject



51
52
53
# File 'lib/promptmenot.rb', line 51

def root
  File.expand_path("..", __dir__)
end

.safe?(text, sensitivity: nil) ⇒ Boolean

Convenience API

Returns:

  • (Boolean)


57
58
59
# File 'lib/promptmenot.rb', line 57

def safe?(text, sensitivity: nil)
  detect(text, sensitivity: sensitivity).safe?
end

.sanitize(text, sensitivity: nil, replacement: nil) ⇒ Object



65
66
67
# File 'lib/promptmenot.rb', line 65

def sanitize(text, sensitivity: nil, replacement: nil)
  Sanitizer.new(sensitivity: sensitivity, replacement: replacement).sanitize(text)
end