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