method
simulate
v5.1.7 -
Show latest stable
- Class:
ActionDispatch::Journey::NFA::Simulator
simulate(string)public
No documentation available.
# File actionpack/lib/action_dispatch/journey/nfa/simulator.rb, line 21
def simulate(string)
input = StringScanner.new(string)
state = tt.eclosure(0)
until input.eos?
sym = input.scan(%([/.?]|[^/.?]+))
# FIXME: tt.eclosure is not needed for the GTG
state = tt.eclosure(tt.move(state, sym))
end
acceptance_states = state.find_all { |s|
tt.accepting?(tt.eclosure(s).sort.last)
}
return if acceptance_states.empty?
memos = acceptance_states.flat_map { |x| tt.memo(x) }.compact
MatchData.new(memos)
end