class Stockade::Lexemes::Base

Base class for all lexemes

Lexer extracts lexem candidates of text using `.regex` of corresponding= subclass, instantiates it and then furtner calls its `#valid?` to verify that this is indeed a valid lexeme.

Attributes

raw_value[R]
start_pos[R]

Public Class Methods

new(value, start_pos = nil) click to toggle source
# File lib/stockade/lexemes/base.rb, line 14
def initialize(value, start_pos = nil)
  @raw_value = value
  @start_pos = start_pos
end
regex() click to toggle source
# File lib/stockade/lexemes/base.rb, line 27
def self.regex; end
types() click to toggle source
# File lib/stockade/lexemes/base.rb, line 54
def self.types
  %i[date word email firstname lastname phone]
end

Public Instance Methods

==(other) click to toggle source
# File lib/stockade/lexemes/base.rb, line 33
def ==(other)
  value == other.value &&
    self.class == other.class
end
end_pos() click to toggle source
# File lib/stockade/lexemes/base.rb, line 23
def end_pos
  start_pos + raw_value.size
end
mask() click to toggle source
# File lib/stockade/lexemes/base.rb, line 42
def mask
  '*' * raw_value.size
end
range() click to toggle source
# File lib/stockade/lexemes/base.rb, line 38
def range
  start_pos..end_pos
end
token() click to toggle source
# File lib/stockade/lexemes/base.rb, line 46
def token
  SecureRandom.base64(raw_value.size)[0..raw_value.size - 1]
end
type() click to toggle source
# File lib/stockade/lexemes/base.rb, line 50
def type
  self.class.name.split('::').last.downcase.to_sym
end
valid?() click to toggle source
# File lib/stockade/lexemes/base.rb, line 29
def valid?
  true
end
value() click to toggle source
# File lib/stockade/lexemes/base.rb, line 19
def value
  raw_value.downcase.strip
end