http_router 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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