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
- .extract(text) ⇒ Object
-
.mask(text) ⇒ Object
Mask all PII in ‘text` with `*`.
- .process(text, action) ⇒ Object
- .tokenize(text) ⇒ Object
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 |