Class: RubyRoutes::Segments::WildcardSegment
- Inherits:
-
BaseSegment
- Object
- BaseSegment
- RubyRoutes::Segments::WildcardSegment
- Defined in:
- lib/ruby_routes/segments/wildcard_segment.rb
Instance Method Summary collapse
- #ensure_child(current) ⇒ Object
-
#initialize(text) ⇒ WildcardSegment
constructor
A new instance of WildcardSegment.
- #match(node, _text, idx, segments, params) ⇒ Object
- #wildcard? ⇒ Boolean
Constructor Details
#initialize(text) ⇒ WildcardSegment
Returns a new instance of WildcardSegment.
4 5 6 |
# File 'lib/ruby_routes/segments/wildcard_segment.rb', line 4 def initialize(text) @name = (text[1..-1] || 'splat') end |
Instance Method Details
#ensure_child(current) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/ruby_routes/segments/wildcard_segment.rb', line 8 def ensure_child(current) current.wildcard_child ||= Node.new current = current.wildcard_child current.param_name = @name current end |
#match(node, _text, idx, segments, params) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/ruby_routes/segments/wildcard_segment.rb', line 19 def match(node, _text, idx, segments, params) return [nil, false] unless node.wildcard_child nxt = node.wildcard_child params[nxt.param_name.to_s] = segments[idx..-1].join('/') if params [nxt, true] end |
#wildcard? ⇒ Boolean
15 16 17 |
# File 'lib/ruby_routes/segments/wildcard_segment.rb', line 15 def wildcard? true end |