Class: RubyRoutes::Segments::WildcardSegment

Inherits:
BaseSegment
  • Object
show all
Defined in:
lib/ruby_routes/segments/wildcard_segment.rb

Instance Method Summary collapse

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

Returns:

  • (Boolean)


15
16
17
# File 'lib/ruby_routes/segments/wildcard_segment.rb', line 15

def wildcard?
  true
end