Class: HttpRouter::Node::AbstractRequestNode
- Inherits:
-
HttpRouter::Node
- Object
- HttpRouter::Node
- HttpRouter::Node::AbstractRequestNode
- Defined in:
- lib/http_router/node/abstract_request_node.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#request_method ⇒ Object
readonly
Returns the value of attribute request_method.
-
#tests ⇒ Object
readonly
Returns the value of attribute tests.
Attributes inherited from HttpRouter::Node
Instance Method Summary collapse
-
#initialize(route, parent, tests, request_method) ⇒ AbstractRequestNode
constructor
A new instance of AbstractRequestNode.
- #inspect_label ⇒ Object
- #to_code ⇒ Object
- #usable?(other) ⇒ Boolean
Methods inherited from HttpRouter::Node
#add_destination, #add_free_match, #add_glob, #add_glob_regexp, #add_host, #add_lookup, #add_match, #add_request_method, #add_scheme, #add_spanning_match, #add_user_agent, #add_variable, #depth, #inspect, #inspect_matchers_body
Constructor Details
#initialize(route, parent, tests, request_method) ⇒ AbstractRequestNode
Returns a new instance of AbstractRequestNode.
6 7 8 9 10 11 12 13 14 |
# File 'lib/http_router/node/abstract_request_node.rb', line 6 def initialize(route, parent, tests, request_method) @request_method = request_method @tests = case tests when Array then tests when Set then tests.to_a else [tests] end super(route, parent) end |
Instance Attribute Details
#request_method ⇒ Object (readonly)
Returns the value of attribute request_method.
4 5 6 |
# File 'lib/http_router/node/abstract_request_node.rb', line 4 def request_method @request_method end |
#tests ⇒ Object (readonly)
Returns the value of attribute tests.
4 5 6 |
# File 'lib/http_router/node/abstract_request_node.rb', line 4 def tests @tests end |
Instance Method Details
#inspect_label ⇒ Object
26 27 28 |
# File 'lib/http_router/node/abstract_request_node.rb', line 26 def inspect_label "#{self.class.name.split("::").last} #{tests.inspect} (#{@matchers.size} matchers)" end |
#to_code ⇒ Object
20 21 22 23 24 |
# File 'lib/http_router/node/abstract_request_node.rb', line 20 def to_code "if #{@tests.map { |test| "#{test.inspect} === request.rack_request.#{request_method}" } * ' or '} #{super} end" end |
#usable?(other) ⇒ Boolean
16 17 18 |
# File 'lib/http_router/node/abstract_request_node.rb', line 16 def usable?(other) other.class == self.class && other.tests == tests && other.request_method == request_method end |