http_router 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  class HttpRouter #:nodoc
3
- VERSION = '0.5.4'
3
+ VERSION = '0.6.0'
4
4
  end
data/test/helper.rb CHANGED
@@ -8,12 +8,11 @@ class HttpRouter::Route
8
8
  end
9
9
 
10
10
  class MiniTest::Unit::TestCase
11
- def router(*args, &blk)
12
- @router ||= HttpRouter.new(*args, &blk)
11
+
12
+ def router(opts = nil, &blk)
13
+ @router ||= HttpRouter.new(opts, &blk)
13
14
  if blk
14
- @router.routes.each do |route|
15
- route.default_destination if route.dest.nil?
16
- end
15
+ @router.routes.each { |route| route.default_destination if route.dest.nil? }
17
16
  @router.routes.size > 1 ? @router.routes : @router.routes.first
18
17
  else
19
18
  @router
@@ -32,11 +31,13 @@ class MiniTest::Unit::TestCase
32
31
  end
33
32
 
34
33
  def assert_header(header, response)
34
+ response = Rack::MockRequest.env_for(response) if response.is_a?(String)
35
35
  response = router.call(response) if response.is_a?(Hash)
36
36
  header.each{|k, v| assert_equal v, response[1][k]}
37
37
  end
38
38
 
39
39
  def assert_status(status, response)
40
+ response = Rack::MockRequest.env_for(response) if response.is_a?(String)
40
41
  response = router.call(response) if response.is_a?(Hash)
41
42
  assert_equal status, response.first
42
43
  end
@@ -46,13 +47,14 @@ class MiniTest::Unit::TestCase
46
47
  router.reset!
47
48
  route = router.add(route)
48
49
  end
49
- route.to{|env| Rack::Response.new("Routing to #{route.to_s}").finish} if route && !route.compiled?
50
+ dest = "Routing to #{route.to_s}"
51
+ route.to{|env| Rack::Response.new(dest).finish} if route && route.dest.nil?
50
52
  request = Rack::MockRequest.env_for(request) if request.is_a?(String)
51
53
  response = @router.call(request)
52
54
  if route
53
- dest = "Routing to #{route.to_s}"
54
55
  assert_equal [dest], response.last.body
55
56
  if params
57
+ raise "Params was nil, but you expected params" if request['router.params'].nil?
56
58
  assert_equal params.size, request['router.params'].size
57
59
  params.each { |k, v| assert_equal v, request['router.params'][k] }
58
60
  elsif !request['router.params'].nil? and !request['router.params'].empty?
@@ -66,9 +68,9 @@ class MiniTest::Unit::TestCase
66
68
  def assert_generate(path, route, *args)
67
69
  if route.is_a?(String)
68
70
  router.reset!
69
- route = router.add(route).to(path.to_sym)
71
+ route = router.add(route)
70
72
  end
71
- route.to{|env| Rack::Response.new("Routing to #{route.to_s}").finish} if route.respond_to?(:compiled?) && !route.compiled?
73
+ route.to{|env| Rack::Response.new("Routing to #{route.to_s}").finish} if route && route.respond_to?(:to) && !route.dest
72
74
  assert_equal path, router.url(route, *args)
73
75
  end
74
76
  end
@@ -1,12 +1,12 @@
1
1
  class TestRackUrlmap < MiniTest::Unit::TestCase
2
2
 
3
- def test_map_urls
4
- HttpRouter::Rack.override_rack_urlmap!
5
- map = Rack::URLMap.new(
6
- "http://www.example.org/test" => proc {|env| [200, {}, ['test']]},
7
- "http://www.example.org/:test" => proc {|env| [200, {}, ['variable']]}
8
- )
9
- assert_equal 'test', map.call(Rack::MockRequest.env_for('http://www.example.org/test')).last.join
10
- assert_equal 'variable', map.call(Rack::MockRequest.env_for('http://www.example.org/whhhaaa')).last.join
11
- end
3
+ #def test_map_urls
4
+ # HttpRouter::Rack.override_rack_urlmap!
5
+ # map = Rack::URLMap.new(
6
+ # "http://www.example.org/test" => proc {|env| [200, {}, ['test']]},
7
+ # "http://www.example.org/:test" => proc {|env| [200, {}, ['variable']]}
8
+ # )
9
+ # assert_equal 'test', map.call(Rack::MockRequest.env_for('http://www.example.org/test')).last.join
10
+ # assert_equal 'variable', map.call(Rack::MockRequest.env_for('http://www.example.org/whhhaaa')).last.join
11
+ #end
12
12
  end
@@ -1,9 +1,9 @@
1
1
  class TestArbitrary < MiniTest::Unit::TestCase
2
2
  def test_match
3
3
  hello, love80, love8080 = router {
4
- add('test').arbitrary(Proc.new{|req, params| req.host == 'hellodooly' })
5
- add("test").arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 80}
6
- add("test").arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 8080}
4
+ add('test').arbitrary(Proc.new{|req, params| req.rack.host == 'hellodooly' })
5
+ add("test").arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 80}
6
+ add("test").arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 8080}
7
7
  }
8
8
  assert_route love8080, 'http://lovelove:8080/test'
9
9
  end
@@ -11,9 +11,9 @@ class TestArbitrary < MiniTest::Unit::TestCase
11
11
  def test_less_specific_node
12
12
  general, hello, love80, love8080 = router {
13
13
  add("/test")
14
- add("/test").arbitrary(Proc.new{|req, params| req.host == 'hellodooly' })
15
- add("/test").arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 80}
16
- add("/test").arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 8080}
14
+ add("/test").arbitrary(Proc.new{|req, params| req.rack.host == 'hellodooly' })
15
+ add("/test").arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 80}
16
+ add("/test").arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 8080}
17
17
  }
18
18
  assert_route general, 'http://lovelove:8081/test'
19
19
  assert_route hello, 'http://hellodooly:8081/test'
@@ -23,8 +23,8 @@ class TestArbitrary < MiniTest::Unit::TestCase
23
23
 
24
24
  def test_match_request
25
25
  love80, love8080 = router {
26
- add("/test").get.arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 80}
27
- add("/test").get.arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 8080}
26
+ add("/test").get.arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 80}
27
+ add("/test").get.arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 8080}
28
28
  }
29
29
  assert_route love80, 'http://lovelove:80/test'
30
30
  assert_route love8080, 'http://lovelove:8080/test'
@@ -32,8 +32,8 @@ class TestArbitrary < MiniTest::Unit::TestCase
32
32
 
33
33
  def test_less_specific_with_request
34
34
  love80, love8080, general = router {
35
- add("test").post.arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 80}
36
- add("test").post.arbitrary(Proc.new{|req, params| req.host == 'lovelove' }).arbitrary{|req, params, dest| req.port == 8080}
35
+ add("test").post.arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 80}
36
+ add("test").post.arbitrary(Proc.new{|req, params| req.rack.host == 'lovelove' }).arbitrary{|req, params| req.rack.port == 8080}
37
37
  add("test").post
38
38
  }
39
39
  assert_route love8080, Rack::MockRequest.env_for('http://lovelove:8080/test', :method => :post)
@@ -47,4 +47,12 @@ class TestArbitrary < MiniTest::Unit::TestCase
47
47
  }
48
48
  assert_route r, '/test', {:test => 'test'}
49
49
  end
50
+
51
+ def test_continue
52
+ no, yes = router {
53
+ add('test').arbitrary_with_continue{|req, p| req.continue[false]}
54
+ add('test').arbitrary_with_continue{|req, p| req.continue[true]}
55
+ }
56
+ assert_route yes, '/test'
57
+ end
50
58
  end
data/test/test_misc.rb CHANGED
@@ -1,30 +1,30 @@
1
1
  class TestMisc < MiniTest::Unit::TestCase
2
- def test_exceptions
3
- assert_raises(HttpRouter::AmbiguousRouteException) {HttpRouter.new.add("/:var1(/:var2)(/:var3)").compile}
4
- assert_raises(HttpRouter::AmbiguousVariableException) {HttpRouter.new.add("/:var1(/:var1)(/:var1)").compile}
5
- assert_raises(HttpRouter::UnsupportedRequestConditionError) {HttpRouter.new.add("/").condition(:flibberty => 'gibet').compile}
6
- end
7
-
8
- def test_cloning
9
- r1 = HttpRouter.new {
10
- add('/test').name(:test_route).to :test
11
- }
12
- r2 = r1.clone
13
-
14
- r2.add('/test2').name(:test).to(:test2)
15
- assert_equal 2, r2.routes.size
16
-
17
- assert r1.recognize(Rack::Request.new(Rack::MockRequest.env_for('/test2'))).nil?
18
- assert !r2.recognize(Rack::Request.new(Rack::MockRequest.env_for('/test2'))).nil?
19
- assert_equal r1.routes.first, r1.named_routes[:test_route]
20
- assert_equal r2.routes.first, r2.named_routes[:test_route]
21
-
22
- r1.add('/another').name(:test).to(:test2)
23
-
24
- assert_equal r1.routes.size, r2.routes.size
25
- assert_equal '/another', r1.url(:test)
26
- assert_equal '/test2', r2.url(:test)
27
- assert_equal :test, r1.routes.first.dest
28
- assert_equal :test, r2.routes.first.dest
29
- end
2
+ #def test_exceptions
3
+ # assert_raises(HttpRouter::AmbiguousRouteException) {HttpRouter.new.add("/:var1(/:var2)(/:var3)").compile}
4
+ # assert_raises(HttpRouter::AmbiguousVariableException) {HttpRouter.new.add("/:var1(/:var1)(/:var1)").compile}
5
+ # assert_raises(HttpRouter::UnsupportedRequestConditionError) {HttpRouter.new.add("/").condition(:flibberty => 'gibet').compile}
6
+ #end
7
+ #
8
+ #def test_cloning
9
+ # r1 = HttpRouter.new {
10
+ # add('/test').name(:test_route).to :test
11
+ # }
12
+ # r2 = r1.clone
13
+ #
14
+ # r2.add('/test2').name(:test).to(:test2)
15
+ # assert_equal 2, r2.routes.size
16
+ #
17
+ # assert r1.recognize(Rack::Request.new(Rack::MockRequest.env_for('/test2'))).nil?
18
+ # assert !r2.recognize(Rack::Request.new(Rack::MockRequest.env_for('/test2'))).nil?
19
+ # assert_equal r1.routes.first, r1.named_routes[:test_route]
20
+ # assert_equal r2.routes.first, r2.named_routes[:test_route]
21
+ #
22
+ # r1.add('/another').name(:test).to(:test2)
23
+ #
24
+ # assert_equal r1.routes.size, r2.routes.size
25
+ # assert_equal '/another', r1.url(:test)
26
+ # assert_equal '/test2', r2.url(:test)
27
+ # assert_equal :test, r1.routes.first.dest
28
+ # assert_equal :test, r2.routes.first.dest
29
+ #end
30
30
  end
@@ -1,85 +1,85 @@
1
1
  class TestMounting < MiniTest::Unit::TestCase
2
- def setup
3
- @r1 = HttpRouter.new
4
- @r2 = HttpRouter.new
5
- @r2.add("/bar").name(:test).compile
6
- end
7
-
8
- def test_url_mount_for_child_route
9
- route = @r1.add("/foo").to(@r2)
10
- assert_equal "/foo", @r2.url_mount.url
11
- assert_equal "/foo/bar", @r2.url(:test)
12
- end
13
-
14
- def test_default_values
15
- route = @r1.add("/foo/:bar").default(:bar => "baz").to(@r2)
16
- assert_equal "/foo/baz/bar", @r2.url(:test)
17
- assert_equal "/foo/haha/bar", @r2.url(:test, :bar => "haha")
18
- end
19
-
20
- def test_multiple_values
21
- @r1.add("/foo/:bar/:baz").default(:bar => "bar").to(@r2)
22
- assert_equal "/foo/bar/baz/bar", @r2.url(:test, :baz => "baz")
23
- end
24
-
25
- def test_bubble_params
26
- route = @r1.add("/foo/:bar").default(:bar => "baz").to(@r2)
27
- assert_equal "/foo/baz/bar?bang=ers", @r2.url(:test, :bang => "ers")
28
- assert_equal "/foo/haha/bar?bang=ers", @r2.url(:test, :bar => "haha", :bang => "ers")
29
- end
30
-
31
- def test_path_with_optional
32
- @r1.add("/foo(/:bar)").to(@r2)
33
- @r2.add("/hey(/:there)").name(:test).compile
34
- assert_equal "/foo/hey", @r2.url(:test)
35
- assert_equal "/foo/bar/hey", @r2.url(:test, :bar => "bar")
36
- assert_equal "/foo/bar/hey/there", @r2.url(:test, :bar => "bar", :there => "there")
37
- end
38
-
39
- def test_nest3
40
- @r3 = HttpRouter.new
41
- @r1.add("/foo(/:bar)").default(:bar => "barry").to(@r2)
42
- @r2.add("/hi").name(:hi).compile
43
- @r2.add("/mounted").to(@r3)
44
- @r3.add("/endpoint").name(:endpoint).compile
45
-
46
- assert_equal "/foo/barry/hi", @r2.url(:hi)
47
- assert_equal "/foo/barry/mounted/endpoint", @r3.url(:endpoint)
48
- assert_equal "/foo/flower/mounted/endpoint", @r3.url(:endpoint, :bar => "flower")
49
- end
50
-
51
- def test_with_default_host
52
- @r1.add("/mounted").default(:host => "example.com").to(@r2)
53
- assert_equal "http://example.com/mounted/bar", @r2.url(:test)
54
- end
55
-
56
- def test_with_host
57
- @r1.add("/mounted").to(@r2)
58
- assert_equal "/mounted/bar", @r2.url(:test)
59
- assert_equal "http://example.com/mounted/bar", @r2.url(:test, :host => "example.com")
60
- end
61
-
62
- def test_with_scheme
63
- @r1.add("/mounted").to(@r2)
64
- assert_equal "/mounted/bar", @r2.url(:test)
65
- assert_equal "https://example.com/mounted/bar", @r2.url(:test, :scheme => "https", :host => "example.com")
66
- end
67
-
68
- def test_clone
69
- @r3 = HttpRouter.new
70
- @r1.add("/first").to(@r2)
71
- @r2.add("/second").to(@r3)
72
- r1 = @r1.clone
73
- assert @r1.routes.first
74
- r2 = r1.routes.first.dest
75
- assert r2
76
- assert_equal @r1.routes.first.dest.object_id, @r2.object_id
77
- assert r2.object_id != @r2.object_id
78
- assert_equal 2, r2.routes.size
79
- r3 = r2.routes.last.dest
80
- assert_instance_of HttpRouter, r3
81
- assert r3.object_id != @r3.object_id
82
- end
2
+ #def setup
3
+ # @r1 = HttpRouter.new
4
+ # @r2 = HttpRouter.new
5
+ # @r2.add("/bar").name(:test).compile
6
+ #end
7
+ #
8
+ #def test_url_mount_for_child_route
9
+ # route = @r1.add("/foo").to(@r2)
10
+ # assert_equal "/foo", @r2.url_mount.url
11
+ # assert_equal "/foo/bar", @r2.url(:test)
12
+ #end
13
+ #
14
+ #def test_default_values
15
+ # route = @r1.add("/foo/:bar").default(:bar => "baz").to(@r2)
16
+ # assert_equal "/foo/baz/bar", @r2.url(:test)
17
+ # assert_equal "/foo/haha/bar", @r2.url(:test, :bar => "haha")
18
+ #end
19
+ #
20
+ #def test_multiple_values
21
+ # @r1.add("/foo/:bar/:baz").default(:bar => "bar").to(@r2)
22
+ # assert_equal "/foo/bar/baz/bar", @r2.url(:test, :baz => "baz")
23
+ #end
24
+ #
25
+ #def test_bubble_params
26
+ # route = @r1.add("/foo/:bar").default(:bar => "baz").to(@r2)
27
+ # assert_equal "/foo/baz/bar?bang=ers", @r2.url(:test, :bang => "ers")
28
+ # assert_equal "/foo/haha/bar?bang=ers", @r2.url(:test, :bar => "haha", :bang => "ers")
29
+ #end
30
+ #
31
+ #def test_path_with_optional
32
+ # @r1.add("/foo(/:bar)").to(@r2)
33
+ # @r2.add("/hey(/:there)").name(:test).compile
34
+ # assert_equal "/foo/hey", @r2.url(:test)
35
+ # assert_equal "/foo/bar/hey", @r2.url(:test, :bar => "bar")
36
+ # assert_equal "/foo/bar/hey/there", @r2.url(:test, :bar => "bar", :there => "there")
37
+ #end
38
+ #
39
+ #def test_nest3
40
+ # @r3 = HttpRouter.new
41
+ # @r1.add("/foo(/:bar)").default(:bar => "barry").to(@r2)
42
+ # @r2.add("/hi").name(:hi).compile
43
+ # @r2.add("/mounted").to(@r3)
44
+ # @r3.add("/endpoint").name(:endpoint).compile
45
+ #
46
+ # assert_equal "/foo/barry/hi", @r2.url(:hi)
47
+ # assert_equal "/foo/barry/mounted/endpoint", @r3.url(:endpoint)
48
+ # assert_equal "/foo/flower/mounted/endpoint", @r3.url(:endpoint, :bar => "flower")
49
+ #end
50
+ #
51
+ #def test_with_default_host
52
+ # @r1.add("/mounted").default(:host => "example.com").to(@r2)
53
+ # assert_equal "http://example.com/mounted/bar", @r2.url(:test)
54
+ #end
55
+ #
56
+ #def test_with_host
57
+ # @r1.add("/mounted").to(@r2)
58
+ # assert_equal "/mounted/bar", @r2.url(:test)
59
+ # assert_equal "http://example.com/mounted/bar", @r2.url(:test, :host => "example.com")
60
+ #end
61
+ #
62
+ #def test_with_scheme
63
+ # @r1.add("/mounted").to(@r2)
64
+ # assert_equal "/mounted/bar", @r2.url(:test)
65
+ # assert_equal "https://example.com/mounted/bar", @r2.url(:test, :scheme => "https", :host => "example.com")
66
+ #end
67
+ #
68
+ #def test_clone
69
+ # @r3 = HttpRouter.new
70
+ # @r1.add("/first").to(@r2)
71
+ # @r2.add("/second").to(@r3)
72
+ # r1 = @r1.clone
73
+ # assert @r1.routes.first
74
+ # r2 = r1.routes.first.dest
75
+ # assert r2
76
+ # assert_equal @r1.routes.first.dest.object_id, @r2.object_id
77
+ # assert r2.object_id != @r2.object_id
78
+ # assert_equal 2, r2.routes.size
79
+ # r3 = r2.routes.last.dest
80
+ # assert_instance_of HttpRouter, r3
81
+ # assert r3.object_id != @r3.object_id
82
+ #end
83
83
  end
84
84
 
85
85
  # it "should clone my nested structure" do
data/test/test_request.rb CHANGED
@@ -6,6 +6,12 @@ class TestRequest < MiniTest::Unit::TestCase
6
6
  assert_status(405, Rack::MockRequest.env_for('/test', :method => 'GET'))
7
7
  end
8
8
 
9
+ def test_single_app_with_404
10
+ r = router { add('test').post.to{|env| [404, {}, []]} }
11
+ assert_route nil, Rack::MockRequest.env_for('/test', :method => 'POST')
12
+ assert_status(404, Rack::MockRequest.env_for('/test', :method => 'POST'))
13
+ end
14
+
9
15
  def test_with_optional_parts_and_405
10
16
  get, post, delete = router {
11
17
  get('test(.:format)')
@@ -3,10 +3,6 @@ class TestVariable < MiniTest::Unit::TestCase
3
3
  assert_route router.add('/test'), '/test/'
4
4
  end
5
5
 
6
- def test_ignore_trailing_slash_disabled
7
- assert_route router(:ignore_trailing_slash => false).add('/test/?'), '/test/'
8
- end
9
-
10
6
  def test_ignore_trailing_slash_enabled
11
7
  router(:ignore_trailing_slash => false).add('/test/?')
12
8
  assert_route nil, '/test/'
@@ -29,13 +29,6 @@ class TestVariable < MiniTest::Unit::TestCase
29
29
  assert_route static, '/foo'
30
30
  end
31
31
 
32
- def test_anonymous_variable
33
- assert_route '/foo/:', '/foo/id', {:'$1' => 'id'}
34
- assert_route 'foo/:/:', '/foo/id/what', {:'$1' => 'id', :'$2' => 'what'}
35
- assert_route 'foo/*/test', '/foo/id1/id2/test', {:'$1' => ['id1', 'id2']}
36
- assert_route '/foo/*/what/:', '/foo/id1/id2/what/more', {:'$1' => ['id1', 'id2'], :'$2' => 'more'}
37
- end
38
-
39
32
  def test_variable_mixed_with_static
40
33
  static, dynamic = router {
41
34
  add("/foo/foo")
@@ -50,8 +43,7 @@ class TestVariable < MiniTest::Unit::TestCase
50
43
  end
51
44
 
52
45
  def test_match_path
53
- r = router { add(%r{/(test123|\d+)}) }
54
- assert_equal true, r.regex?
46
+ r = router { add(%r{^/(test123|\d+)$}) }
55
47
  assert_route r, '/test123'
56
48
  assert_route r, '/123'
57
49
  assert_route nil, '/test123andmore'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_router
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 5
9
- - 4
10
- version: 0.5.4
8
+ - 6
9
+ - 0
10
+ version: 0.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joshua Hull
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-28 00:00:00 -08:00
18
+ date: 2011-03-17 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -187,26 +187,26 @@ files:
187
187
  - examples/variable_with_regex.ru
188
188
  - http_router.gemspec
189
189
  - lib/http_router.rb
190
- - lib/http_router/glob.rb
191
- - lib/http_router/interface/sinatra.rb
192
190
  - lib/http_router/node.rb
191
+ - lib/http_router/node/arbitrary.rb
192
+ - lib/http_router/node/free_regex.rb
193
+ - lib/http_router/node/glob.rb
194
+ - lib/http_router/node/glob_regex.rb
195
+ - lib/http_router/node/regex.rb
196
+ - lib/http_router/node/request.rb
197
+ - lib/http_router/node/spanning_regex.rb
198
+ - lib/http_router/node/variable.rb
193
199
  - lib/http_router/optional_compiler.rb
194
- - lib/http_router/parts.rb
195
200
  - lib/http_router/path.rb
196
- - lib/http_router/rack.rb
197
- - lib/http_router/rack/builder.rb
198
- - lib/http_router/rack/url_map.rb
199
- - lib/http_router/root.rb
201
+ - lib/http_router/regex_route.rb
202
+ - lib/http_router/request.rb
203
+ - lib/http_router/response.rb
200
204
  - lib/http_router/route.rb
201
- - lib/http_router/static.rb
202
- - lib/http_router/variable.rb
203
205
  - lib/http_router/version.rb
204
206
  - test/helper.rb
205
207
  - test/rack/test_dispatch.rb
206
208
  - test/rack/test_route.rb
207
209
  - test/rack/test_urlmap.rb
208
- - test/sinatra/recognize_spec.rb
209
- - test/sinatra/test_recognize.rb
210
210
  - test/test_arbitrary.rb
211
211
  - test/test_generate.rb
212
212
  - test/test_greedy.rb