Sha256: 0eaaa8fbef6bf974b250f280cf6b98cd21a7ba2ce417e900c4e4493621ee5aa1
Contents?: true
Size: 808 Bytes
Versions: 2
Compression:
Stored size: 808 Bytes
Contents
require 'dentaku/token_scanner' describe Dentaku::TokenScanner do let(:whitespace) { described_class.new(:whitespace, '\s') } let(:numeric) { described_class.new(:numeric, '(\d+(\.\d+)?|\.\d+)', lambda{|raw| raw =~ /\./ ? BigDecimal.new(raw) : raw.to_i }) } it 'returns a token for a matching string' do token = whitespace.scan(' ') expect(token.category).to eq(:whitespace) expect(token.value).to eq(' ') end it 'returns falsy for a non-matching string' do expect(whitespace.scan('A')).not_to be end it 'performs raw value conversion' do token = numeric.scan('5') expect(token.category).to eq(:numeric) expect(token.value).to eq(5) end it 'returns a list of all configured scanners' do expect(described_class.scanners.length).to eq 10 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dentaku-1.2.0 | spec/token_scanner_spec.rb |
dentaku-1.1.0 | spec/token_scanner_spec.rb |