Module: Stockade

Defined in:
lib/stockade.rb,
lib/stockade/lexer.rb,
lib/stockade/parser.rb,
lib/stockade/version.rb,
lib/stockade/lexemes/base.rb,
lib/stockade/lexemes/date.rb,
lib/stockade/lexemes/dict.rb,
lib/stockade/lexemes/word.rb,
lib/stockade/lexemes/email.rb,
lib/stockade/lexemes/phone.rb,
lib/stockade/lexemes/filler.rb,
lib/stockade/lexemes/lastname.rb,
lib/stockade/lexemes/firstname.rb,
lib/stockade/lexemes/payment_card.rb

Overview

Stockade module

Defined Under Namespace

Modules: Lexemes Classes: Lexer, Parser

Constant Summary collapse

VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.extract(text) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/stockade.rb', line 39

def extract(text)
  lexemes(text).map do |lexeme|
    {
      lexeme.class.name.to_s.split('::').last.downcase => lexeme.value
    }
  end
end

.mask(text) ⇒ Object

Mask all PII in ‘text` with `*`



23
24
25
# File 'lib/stockade.rb', line 23

def mask(text)
  process(text, :mask)
end

.process(text, action) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/stockade.rb', line 31

def process(text, action)
  lexemes(text).inject(text) do |mask, lexeme|
    prefix = lexeme.start_pos.zero? ? '' : mask[0..lexeme.start_pos - 1]
    postfix = mask[lexeme.end_pos..-1]
    "#{prefix}#{lexeme.send(action)}#{postfix}"
  end
end

.tokenize(text) ⇒ Object



27
28
29
# File 'lib/stockade.rb', line 27

def tokenize(text)
  process(text, :token)
end