Class: HttpRouter::Root

Inherits:
Node
  • Object
show all
Defined in:
lib/http_router/root.rb

Defined Under Namespace

Classes: AlternativeRequestMethods

Constant Summary collapse

HttpRequestMethods =
%w(HEAD GET HEAD POST DELETE PUT)

Instance Attribute Summary

Attributes inherited from Node

#arbitrary_node, #catchall, #linear, #lookup, #request_node, #value, #variable

Instance Method Summary collapse

Methods inherited from Node

#add, #add_arbitrary, #add_request_methods, #add_to_linear, #initialize, #reset!

Constructor Details

This class inherits a constructor from HttpRouter::Node

Instance Method Details

#add_path(path) ⇒ Object



9
10
11
12
# File 'lib/http_router/root.rb', line 9

def add_path(path)
  node = path.parts.inject(self) { |node, part| node.add(part) }
  node
end

#find(request) ⇒ Object



14
15
16
17
18
19
# File 'lib/http_router/root.rb', line 14

def find(request)
  params = []
  parts = get_parts(request)
  node = find_on_parts(request, parts, params)
  process_response(node, parts, params, request)
end

#get_parts(request) ⇒ Object



21
22
23
24
25
# File 'lib/http_router/root.rb', line 21

def get_parts(request)
  parts = router.split(request.path_info.dup)
  parts << '' if request.path_info[-1] == ?/
  parts
end