Class: ActionDispatch::Journey::Routes
- Includes:
- Enumerable
- Defined in:
- actionpack/lib/action_dispatch/journey/routes.rb
Overview
The Routing table. Contains all routes for a system. Routes can be added to the table by calling Routes#add_route.
Instance Attribute Summary collapse
-
#anchored_routes ⇒ Object
readonly
Returns the value of attribute anchored_routes.
-
#custom_routes ⇒ Object
readonly
Returns the value of attribute custom_routes.
-
#routes ⇒ Object
readonly
Returns the value of attribute routes.
Instance Method Summary collapse
- #add_route(name, mapping) ⇒ Object
- #ast ⇒ Object
- #clear ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(routes = []) ⇒ Routes
constructor
A new instance of Routes.
- #last ⇒ Object
- #length ⇒ Object (also: #size)
- #partition_route(route) ⇒ Object
- #simulator ⇒ Object
Methods included from Enumerable
Constructor Details
#initialize(routes = []) ⇒ Routes
Returns a new instance of Routes.
12 13 14 15 16 17 18 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 12 def initialize(routes = []) @routes = routes @ast = nil @anchored_routes = [] @custom_routes = [] @simulator = nil end |
Instance Attribute Details
#anchored_routes ⇒ Object (readonly)
Returns the value of attribute anchored_routes
10 11 12 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 10 def anchored_routes @anchored_routes end |
#custom_routes ⇒ Object (readonly)
Returns the value of attribute custom_routes
10 11 12 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 10 def custom_routes @custom_routes end |
#routes ⇒ Object (readonly)
Returns the value of attribute routes
10 11 12 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 10 def routes @routes end |
Instance Method Details
#add_route(name, mapping) ⇒ Object
65 66 67 68 69 70 71 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 65 def add_route(name, mapping) route = mapping.make_route name, routes.length routes << route partition_route(route) clear_cache! route end |
#ast ⇒ Object
51 52 53 54 55 56 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 51 def ast @ast ||= begin nodes = anchored_routes.map(&:ast) Nodes::Or.new(nodes) end end |
#clear ⇒ Object
37 38 39 40 41 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 37 def clear routes.clear anchored_routes.clear custom_routes.clear end |
#each(&block) ⇒ Object
33 34 35 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 33 def each(&block) routes.each(&block) end |
#empty? ⇒ Boolean
20 21 22 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 20 def empty? routes.empty? end |
#last ⇒ Object
29 30 31 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 29 def last routes.last end |
#length ⇒ Object Also known as: size
24 25 26 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 24 def length routes.length end |
#partition_route(route) ⇒ Object
43 44 45 46 47 48 49 |
# File 'actionpack/lib/action_dispatch/journey/routes.rb', line 43 def partition_route(route) if route.path.anchored && route.path.requirements_anchored? anchored_routes << route else custom_routes << route end end |