class Truss::Router::Routeset
Attributes
nodes[RW]
Public Class Methods
new(nodes={})
click to toggle source
# File lib/truss/router/routeset.rb, line 6 def initialize(nodes={}) @nodes = nodes %w[GET HEAD OPTIONS POST PATCH PUT DELETE].each do |req| @nodes[req] ||= [] end end
Public Instance Methods
add_node(node)
click to toggle source
# File lib/truss/router/routeset.rb, line 13 def add_node(node) node.allowed_methods.each do |req| @nodes[req] << node end end
find_route(request)
click to toggle source
# File lib/truss/router/routeset.rb, line 27 def find_route request req_nodes = nodes_for(request.request_method).select{|n| (n.path_segments == request.segment_length) } req_nodes.detect do |node| node.matches?(request) end end
nodes_for(type)
click to toggle source
# File lib/truss/router/routeset.rb, line 19 def nodes_for(type) nodes[type] end
total_nodes()
click to toggle source
# File lib/truss/router/routeset.rb, line 23 def total_nodes nodes.map{|k,v| v.count}.flatten.inject(:+) end