module Stockade

Stockade module

Constants

VERSION

Public Class Methods

extract(text) click to toggle source
# 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) click to toggle source

Mask all PII in `text` with `*`

# File lib/stockade.rb, line 23
def mask(text)
  process(text, :mask)
end
process(text, action) click to toggle source
# 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) click to toggle source
# File lib/stockade.rb, line 27
def tokenize(text)
  process(text, :token)
end

Private Class Methods

lexemes(text) click to toggle source
# File lib/stockade.rb, line 49
def lexemes(text)
  Parser.call(Lexer.call(text))
end