class ActionDispatch::Journey::GTG::Simulator

:nodoc:

def initialize(transition_table)

def initialize(transition_table)
  @tt = transition_table
end

def memos(string)

def memos(string)
  input = StringScanner.new(string)
  state = INITIAL_STATE
  while sym = input.scan(%r([/.?]|[^/.?]+))
    state = tt.move(state, sym)
  end
  acceptance_states = state.each_with_object([]) do |s, memos|
    memos.concat(tt.memo(s)) if tt.accepting?(s)
  end
  acceptance_states.empty? ? yield : acceptance_states
end