journey 1.0.0.rc1

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.
Files changed (51) hide show
  1. data/.autotest +8 -0
  2. data/.gemtest +0 -0
  3. data/CHANGELOG.rdoc +6 -0
  4. data/Gemfile +11 -0
  5. data/Manifest.txt +50 -0
  6. data/README.rdoc +48 -0
  7. data/Rakefile +31 -0
  8. data/journey.gemspec +42 -0
  9. data/lib/journey.rb +5 -0
  10. data/lib/journey/backwards.rb +5 -0
  11. data/lib/journey/core-ext/hash.rb +11 -0
  12. data/lib/journey/formatter.rb +129 -0
  13. data/lib/journey/gtg/builder.rb +159 -0
  14. data/lib/journey/gtg/simulator.rb +44 -0
  15. data/lib/journey/gtg/transition_table.rb +152 -0
  16. data/lib/journey/nfa/builder.rb +74 -0
  17. data/lib/journey/nfa/dot.rb +34 -0
  18. data/lib/journey/nfa/simulator.rb +45 -0
  19. data/lib/journey/nfa/transition_table.rb +164 -0
  20. data/lib/journey/nodes/node.rb +104 -0
  21. data/lib/journey/parser.rb +204 -0
  22. data/lib/journey/parser.y +47 -0
  23. data/lib/journey/parser_extras.rb +21 -0
  24. data/lib/journey/path/pattern.rb +190 -0
  25. data/lib/journey/route.rb +92 -0
  26. data/lib/journey/router.rb +138 -0
  27. data/lib/journey/router/strexp.rb +22 -0
  28. data/lib/journey/router/utils.rb +57 -0
  29. data/lib/journey/routes.rb +74 -0
  30. data/lib/journey/scanner.rb +58 -0
  31. data/lib/journey/visitors.rb +186 -0
  32. data/lib/journey/visualizer/d3.min.js +2 -0
  33. data/lib/journey/visualizer/fsm.css +34 -0
  34. data/lib/journey/visualizer/fsm.js +134 -0
  35. data/lib/journey/visualizer/index.html.erb +50 -0
  36. data/lib/journey/visualizer/reset.css +48 -0
  37. data/test/gtg/test_builder.rb +77 -0
  38. data/test/gtg/test_transition_table.rb +113 -0
  39. data/test/helper.rb +4 -0
  40. data/test/nfa/test_simulator.rb +96 -0
  41. data/test/nfa/test_transition_table.rb +70 -0
  42. data/test/nodes/test_symbol.rb +15 -0
  43. data/test/path/test_pattern.rb +260 -0
  44. data/test/route/definition/test_parser.rb +108 -0
  45. data/test/route/definition/test_scanner.rb +52 -0
  46. data/test/router/test_strexp.rb +30 -0
  47. data/test/router/test_utils.rb +19 -0
  48. data/test/test_route.rb +95 -0
  49. data/test/test_router.rb +464 -0
  50. data/test/test_routes.rb +51 -0
  51. metadata +168 -0
@@ -0,0 +1,51 @@
1
+ require 'helper'
2
+
3
+ module Journey
4
+ class TestRoutes < MiniTest::Unit::TestCase
5
+ def test_clear
6
+ routes = Routes.new
7
+ exp = Router::Strexp.new '/foo(/:id)', {}, ['/.?']
8
+ path = Path::Pattern.new exp
9
+ requirements = { :hello => /world/ }
10
+
11
+ routes.add_route nil, path, requirements, {:id => nil}, {}
12
+ assert_equal 1, routes.length
13
+
14
+ routes.clear
15
+ assert_equal 0, routes.length
16
+ end
17
+
18
+ def test_ast
19
+ routes = Routes.new
20
+ path = Path::Pattern.new '/hello'
21
+
22
+ routes.add_route nil, path, {}, {}, {}
23
+ ast = routes.ast
24
+ routes.add_route nil, path, {}, {}, {}
25
+ refute_equal ast, routes.ast
26
+ end
27
+
28
+ def test_simulator_changes
29
+ routes = Routes.new
30
+ path = Path::Pattern.new '/hello'
31
+
32
+ routes.add_route nil, path, {}, {}, {}
33
+ sim = routes.simulator
34
+ routes.add_route nil, path, {}, {}, {}
35
+ refute_equal sim, routes.simulator
36
+ end
37
+
38
+ def test_first_name_wins
39
+ #def add_route app, path, conditions, defaults, name = nil
40
+ routes = Routes.new
41
+
42
+ one = Path::Pattern.new '/hello'
43
+ two = Path::Pattern.new '/aaron'
44
+
45
+ routes.add_route nil, one, {}, {}, 'aaron'
46
+ routes.add_route nil, two, {}, {}, 'aaron'
47
+
48
+ assert_equal '/hello', routes.named_routes['aaron'].path.spec.to_s
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: journey
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.rc1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Aaron Patterson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: &70241724096100 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.9'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70241724096100
25
+ - !ruby/object:Gem::Dependency
26
+ name: racc
27
+ requirement: &70241724104520 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.4.6
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70241724104520
36
+ - !ruby/object:Gem::Dependency
37
+ name: json
38
+ requirement: &70241724098840 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70241724098840
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: &70241724109020 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.12'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70241724109020
58
+ - !ruby/object:Gem::Dependency
59
+ name: rdoc
60
+ requirement: &70241729404380 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '3.10'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70241729404380
69
+ description: Journey is a router. It routes requests.
70
+ email:
71
+ - aaron@tenderlovemaking.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files:
75
+ - Manifest.txt
76
+ - CHANGELOG.rdoc
77
+ - README.rdoc
78
+ files:
79
+ - .autotest
80
+ - .gemtest
81
+ - CHANGELOG.rdoc
82
+ - Gemfile
83
+ - Manifest.txt
84
+ - README.rdoc
85
+ - Rakefile
86
+ - journey.gemspec
87
+ - lib/journey.rb
88
+ - lib/journey/backwards.rb
89
+ - lib/journey/core-ext/hash.rb
90
+ - lib/journey/formatter.rb
91
+ - lib/journey/gtg/builder.rb
92
+ - lib/journey/gtg/simulator.rb
93
+ - lib/journey/gtg/transition_table.rb
94
+ - lib/journey/nfa/builder.rb
95
+ - lib/journey/nfa/dot.rb
96
+ - lib/journey/nfa/simulator.rb
97
+ - lib/journey/nfa/transition_table.rb
98
+ - lib/journey/nodes/node.rb
99
+ - lib/journey/parser.rb
100
+ - lib/journey/parser.y
101
+ - lib/journey/parser_extras.rb
102
+ - lib/journey/path/pattern.rb
103
+ - lib/journey/route.rb
104
+ - lib/journey/router.rb
105
+ - lib/journey/router/strexp.rb
106
+ - lib/journey/router/utils.rb
107
+ - lib/journey/routes.rb
108
+ - lib/journey/scanner.rb
109
+ - lib/journey/visitors.rb
110
+ - lib/journey/visualizer/d3.min.js
111
+ - lib/journey/visualizer/fsm.css
112
+ - lib/journey/visualizer/fsm.js
113
+ - lib/journey/visualizer/index.html.erb
114
+ - lib/journey/visualizer/reset.css
115
+ - test/gtg/test_builder.rb
116
+ - test/gtg/test_transition_table.rb
117
+ - test/helper.rb
118
+ - test/nfa/test_simulator.rb
119
+ - test/nfa/test_transition_table.rb
120
+ - test/nodes/test_symbol.rb
121
+ - test/path/test_pattern.rb
122
+ - test/route/definition/test_parser.rb
123
+ - test/route/definition/test_scanner.rb
124
+ - test/router/test_strexp.rb
125
+ - test/router/test_utils.rb
126
+ - test/test_route.rb
127
+ - test/test_router.rb
128
+ - test/test_routes.rb
129
+ homepage: http://github.com/tenderlove/journey
130
+ licenses: []
131
+ post_install_message:
132
+ rdoc_options:
133
+ - --main
134
+ - README.rdoc
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ! '>'
147
+ - !ruby/object:Gem::Version
148
+ version: 1.3.1
149
+ requirements: []
150
+ rubyforge_project: journey
151
+ rubygems_version: 1.8.11
152
+ signing_key:
153
+ specification_version: 3
154
+ summary: Journey is a router
155
+ test_files:
156
+ - test/gtg/test_builder.rb
157
+ - test/gtg/test_transition_table.rb
158
+ - test/nfa/test_simulator.rb
159
+ - test/nfa/test_transition_table.rb
160
+ - test/nodes/test_symbol.rb
161
+ - test/path/test_pattern.rb
162
+ - test/route/definition/test_parser.rb
163
+ - test/route/definition/test_scanner.rb
164
+ - test/router/test_strexp.rb
165
+ - test/router/test_utils.rb
166
+ - test/test_route.rb
167
+ - test/test_router.rb
168
+ - test/test_routes.rb