method
segment_tree
rails latest stable - Class:
ActionController::Routing::RouteSet
segment_tree(routes)public
No documentation available.
# File actionpack/lib/action_controller/routing/recognition_optimisation.rb, line 70
def segment_tree(routes)
tree = [0]
i = -1
routes.each do |route|
i += 1
# not fast, but runs only once
segments = to_plain_segments(route.segments.inject("") { |str,s| str << s.to_s })
node = tree
segments.each do |seg|
seg = :dynamic if seg && seg[0] == ?:
node << [seg, [i]] if node.empty? || node[node.size - 1][0] != seg
node = node[node.size - 1][1]
end
end
tree
end