Methods
S
T
Instance Public methods
simulator_for(paths)
# File actionpack/test/journey/nfa/simulator_test.rb, line 89
def simulator_for paths
  parser  = Journey::Parser.new
  asts    = paths.map { |x| parser.parse x }
  builder = Builder.new Nodes::Or.new asts
  Simulator.new builder.transition_table
end
test_matchdata_has_memos()
# File actionpack/test/journey/nfa/simulator_test.rb, line 47
def test_matchdata_has_memos
  paths   = %w{ /foo /bar }
  parser  = Journey::Parser.new
  asts    = paths.map { |x|
    ast = parser.parse x
    ast.each { |n| n.memo = ast}
    ast
  }

  expected = asts.first

  builder = Builder.new Nodes::Or.new asts

  sim = Simulator.new builder.transition_table

  md = sim.match '/foo'
  assert_equal [expected], md.memos
end
test_matchdata_memos_on_merge()
# File actionpack/test/journey/nfa/simulator_test.rb, line 66
def test_matchdata_memos_on_merge
  parser = Journey::Parser.new
  routes = [
    '/articles(.:format)',
    '/articles/new(.:format)',
    '/articles/:id/edit(.:format)',
    '/articles/:id(.:format)',
  ].map { |path|
    ast = parser.parse path
    ast.each { |n| n.memo = ast }
    ast
  }

  asts = routes.dup

  ast = Nodes::Or.new routes

  nfa   = Journey::NFA::Builder.new ast
  sim = Simulator.new nfa.transition_table
  md = sim.match '/articles'
  assert_equal [asts.first], md.memos
end
test_simulate_optional()
# File actionpack/test/journey/nfa/simulator_test.rb, line 40
def test_simulate_optional
  sim = simulator_for ['/foo(/bar)']
  assert_match sim, '/foo'
  assert_match sim, '/foo/bar'
  assert_no_match sim, '/foo/'
end
test_simulate_or()
# File actionpack/test/journey/nfa/simulator_test.rb, line 33
def test_simulate_or
  sim = simulator_for ['/foo', '/bar']
  assert_match sim, '/bar'
  assert_match sim, '/foo'
  assert_no_match sim, '/baz'
end
test_simulate_regex()
# File actionpack/test/journey/nfa/simulator_test.rb, line 27
def test_simulate_regex
  sim = simulator_for ['/:foo/bar']
  assert_match sim, '/bar/bar'
  assert_match sim, '/foo/bar'
end
test_simulate_simple()
# File actionpack/test/journey/nfa/simulator_test.rb, line 7
def test_simulate_simple
  sim = simulator_for ['/foo']
  assert_match sim, '/foo'
end
test_simulate_simple_no_match()
# File actionpack/test/journey/nfa/simulator_test.rb, line 12
def test_simulate_simple_no_match
  sim = simulator_for ['/foo']
  assert_no_match sim, 'foo'
end
test_simulate_simple_no_match_too_long()
# File actionpack/test/journey/nfa/simulator_test.rb, line 17
def test_simulate_simple_no_match_too_long
  sim = simulator_for ['/foo']
  assert_no_match sim, '/foo/bar'
end
test_simulate_simple_no_match_wrong_string()
# File actionpack/test/journey/nfa/simulator_test.rb, line 22
def test_simulate_simple_no_match_wrong_string
  sim = simulator_for ['/foo']
  assert_no_match sim, '/bar'
end