Class: ActionDispatch::Routing::Mapper::Constraints
- Defined in:
- lib/action_dispatch/routing/mapper.rb
Overview
:nodoc:
Constant Summary collapse
- SERVE =
->(app, req) { app.serve req }
- CALL =
->(app, req) { app.call req.env }
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
-
#constraints ⇒ Object
readonly
Returns the value of attribute constraints.
Instance Method Summary collapse
- #dispatcher? ⇒ Boolean
-
#initialize(app, constraints, strategy) ⇒ Constraints
constructor
A new instance of Constraints.
- #matches?(req) ⇒ Boolean
- #serve(req) ⇒ Object
Methods inherited from Endpoint
#engine?, #rack_app, #redirect?
Constructor Details
#initialize(app, constraints, strategy) ⇒ Constraints
Returns a new instance of Constraints.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/action_dispatch/routing/mapper.rb', line 24 def initialize(app, constraints, strategy) # Unwrap Constraints objects. I don't actually think it's possible # to pass a Constraints object to this constructor, but there were # multiple places that kept testing children of this object. I # *think* they were just being defensive, but I have no idea. if app.is_a?(self.class) constraints += app.constraints app = app.app end @strategy = strategy @app, @constraints, = app, constraints end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
19 20 21 |
# File 'lib/action_dispatch/routing/mapper.rb', line 19 def app @app end |
#constraints ⇒ Object (readonly)
Returns the value of attribute constraints.
19 20 21 |
# File 'lib/action_dispatch/routing/mapper.rb', line 19 def constraints @constraints end |
Instance Method Details
#dispatcher? ⇒ Boolean
39 |
# File 'lib/action_dispatch/routing/mapper.rb', line 39 def dispatcher?; @strategy == SERVE; end |
#matches?(req) ⇒ Boolean
41 42 43 44 45 46 |
# File 'lib/action_dispatch/routing/mapper.rb', line 41 def matches?(req) @constraints.all? do |constraint| (constraint.respond_to?(:matches?) && constraint.matches?(req)) || (constraint.respond_to?(:call) && constraint.call(*constraint_args(constraint, req))) end end |