Class: Dentaku::TokenScanner

Inherits:
Object
  • Object
show all
Defined in:
lib/dentaku/token_scanner.rb

Instance Method Summary collapse

Constructor Details

#initialize(category, regexp, converter = nil) ⇒ TokenScanner

Returns a new instance of TokenScanner.



5
6
7
8
9
# File 'lib/dentaku/token_scanner.rb', line 5

def initialize(category, regexp, converter=nil)
  @category  = category
  @regexp    = %r{\A(#{ regexp })}i
  @converter = converter
end

Instance Method Details

#scan(string) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/dentaku/token_scanner.rb', line 11

def scan(string)
  if m = @regexp.match(string)
    value = raw = m.to_s
    value = @converter.call(raw) if @converter

    return Token.new(@category, value, raw)
  end

  false
end