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.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/action_dispatch/routing/mapper.rb', line 35 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.
30 31 32 |
# File 'lib/action_dispatch/routing/mapper.rb', line 30 def app @app end |
#constraints ⇒ Object (readonly)
Returns the value of attribute constraints.
30 31 32 |
# File 'lib/action_dispatch/routing/mapper.rb', line 30 def constraints @constraints end |
Instance Method Details
#dispatcher? ⇒ Boolean
50 |
# File 'lib/action_dispatch/routing/mapper.rb', line 50 def dispatcher?; @strategy == SERVE; end |
#matches?(req) ⇒ Boolean
52 53 54 55 56 57 |
# File 'lib/action_dispatch/routing/mapper.rb', line 52 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 |