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