Class: TopSecret::Text::GlobalMapping

Inherits:
Object
  • Object
show all
Defined in:
lib/top_secret/text/global_mapping.rb

Overview

Manages consistent labeling across multiple filtering operations by ensuring identical sensitive values receive the same redaction labels globally.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGlobalMapping

Creates a new GlobalMapping instance



17
18
19
20
# File 'lib/top_secret/text/global_mapping.rb', line 17

def initialize
  @mapping = {}
  @sequence = LabelSequence.new
end

Class Method Details

.from_results(individual_results) ⇒ Hash

Creates a global mapping from individual filter results

Parameters:

  • individual_results (Array<Result>)

    Array of individual filter results

Returns:

  • (Hash)

    Inverted mapping from filter labels to original values



12
13
14
# File 'lib/top_secret/text/global_mapping.rb', line 12

def self.from_results(individual_results)
  new.build_from_results(individual_results)
end

Instance Method Details

#build_from_results(individual_results) ⇒ Hash

Builds the global mapping by processing all individual results

Parameters:

  • individual_results (Array<Result>)

    Array of individual filter results

Returns:

  • (Hash)

    Inverted mapping from filter labels to original values



26
27
28
29
30
# File 'lib/top_secret/text/global_mapping.rb', line 26

def build_from_results(individual_results)
  individual_results.each { |result| process_result(result) if result.sensitive? }

  mapping.invert
end