Class: HttpRouter::Node::Lookup

Inherits:
HttpRouter::Node show all
Defined in:
lib/http_router/node/lookup.rb

Instance Attribute Summary

Attributes inherited from HttpRouter::Node

#priority, #router

Instance Method Summary collapse

Methods inherited from HttpRouter::Node

#add_arbitrary, #add_destination, #add_free_match, #add_glob, #add_lookup, #add_match, #add_request, #add_spanning_match, #add_variable, #usable?

Constructor Details

#initialize(router) ⇒ Lookup

Returns a new instance of Lookup.



4
5
6
7
# File 'lib/http_router/node/lookup.rb', line 4

def initialize(router)
  @map = {}
  super(router)
end

Instance Method Details

#[](request) ⇒ Object



9
10
11
12
13
14
# File 'lib/http_router/node/lookup.rb', line 9

def [](request)
  if @map[request.path.first]
    request = request.clone
    @map[request.path.shift].each{|m| m[request]}
  end
end

#add(part) ⇒ Object



16
17
18
# File 'lib/http_router/node/lookup.rb', line 16

def add(part)
  Node.new(@router, @map[part] ||= [])
end

#usuable?(other) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/http_router/node/lookup.rb', line 20

def usuable?(other)
  other.class == self.class
end