Class: RubyRoutes::Segments::DynamicSegment

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

Instance Method Summary collapse

Methods inherited from BaseSegment

#wildcard?

Constructor Details

#initialize(text) ⇒ DynamicSegment

Returns a new instance of DynamicSegment.



4
5
6
# File 'lib/ruby_routes/segments/dynamic_segment.rb', line 4

def initialize(text)
  @name = text[1..-1]
end

Instance Method Details

#ensure_child(current) ⇒ Object



8
9
10
11
12
13
# File 'lib/ruby_routes/segments/dynamic_segment.rb', line 8

def ensure_child(current)
  current.dynamic_child ||= Node.new
  current = current.dynamic_child
  current.param_name = @name
  current
end

#match(node, text, _idx, _segments, params) ⇒ Object



15
16
17
18
19
20
# File 'lib/ruby_routes/segments/dynamic_segment.rb', line 15

def match(node, text, _idx, _segments, params)
  return [nil, false] unless node.dynamic_child
  nxt = node.dynamic_child
  params[nxt.param_name.to_s] = text if params
  [nxt, false]
end