Module: Rack::Mount::Recognition::Route
- Included in:
- Rack::Mount::Route
- Defined in:
- lib/rack/mount/recognition/route.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#named_captures ⇒ Object
readonly
Returns the value of attribute named_captures.
Instance Method Summary collapse
Instance Attribute Details
#named_captures ⇒ Object (readonly)
Returns the value of attribute named_captures.
6 7 8 |
# File 'lib/rack/mount/recognition/route.rb', line 6 def named_captures @named_captures end |
Instance Method Details
#initialize(*args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rack/mount/recognition/route.rb', line 8 def initialize(*args) super @named_captures = {} @conditions.map { |method, condition| @named_captures[method] = condition.named_captures.inject({}) { |named_captures, (k, v)| named_captures[k.to_sym] = v.last - 1 named_captures }.freeze } @named_captures.freeze end |
#recognize(obj) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rack/mount/recognition/route.rb', line 21 def recognize(obj) params = @defaults.dup if @conditions.all? { |method, condition| value = obj.send(method) if m = value.match(condition) matches = m.captures @named_captures[method].each { |k, i| if v = matches[i] params[k] = v end } true else false end } params else nil end end |