Class: Promptmenot::Sanitizer

Inherits:
Object
  • Object
show all
Defined in:
lib/promptmenot/sanitizer.rb

Defined Under Namespace

Classes: SanitizeResult

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sensitivity: nil, categories: nil, replacement: nil) ⇒ Sanitizer

Returns a new instance of Sanitizer.



9
10
11
12
13
# File 'lib/promptmenot/sanitizer.rb', line 9

def initialize(sensitivity: nil, categories: nil, replacement: nil)
  @sensitivity = sensitivity || Promptmenot.configuration.sensitivity
  @categories = categories
  @replacement = replacement || Promptmenot.configuration.replacement_text
end

Instance Attribute Details

#categoriesObject (readonly)

Returns the value of attribute categories.



7
8
9
# File 'lib/promptmenot/sanitizer.rb', line 7

def categories
  @categories
end

#replacementObject (readonly)

Returns the value of attribute replacement.



7
8
9
# File 'lib/promptmenot/sanitizer.rb', line 7

def replacement
  @replacement
end

#sensitivityObject (readonly)

Returns the value of attribute sensitivity.



7
8
9
# File 'lib/promptmenot/sanitizer.rb', line 7

def sensitivity
  @sensitivity
end

Instance Method Details

#sanitize(text) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/promptmenot/sanitizer.rb', line 15

def sanitize(text)
  return SanitizeResult.new(original: text.to_s, sanitized: text.to_s, matches: [], changed?: false) if text.nil?

  detector = Detector.new(sensitivity: @sensitivity, categories: @categories)
  result = detector.detect(text)

  return SanitizeResult.new(original: text.to_s, sanitized: text.to_s, matches: [], changed?: false) if result.safe?

  cleaned = remove_matches(text.to_s, result.matches)

  SanitizeResult.new(
    original: text.to_s,
    sanitized: cleaned,
    matches: result.matches,
    changed?: true
  )
end