Module: Roda::RodaPlugins::OptimizedSegmentMatchers::RequestMethods

Defined in:
lib/roda/plugins/optimized_segment_matchers.rb

Instance Method Summary collapse

Instance Method Details

#is_segmentObject

Optimized version of r.is String that yields the next segment only if it is the final segment.



41
42
43
44
45
46
47
# File 'lib/roda/plugins/optimized_segment_matchers.rb', line 41

def is_segment
  rp = @remaining_path
  if rp.getbyte(0) == 47 && !rp.index('/', 1) && (len = rp.length) > 1
    @remaining_path = ""
    always{yield rp[1, len]}
  end
end

#on_segmentObject

Optimized version of r.on String that yields the next segment if there is a segment.



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/roda/plugins/optimized_segment_matchers.rb', line 26

def on_segment
  rp = @remaining_path
  if rp.getbyte(0) == 47
    if last = rp.index('/', 1)
      @remaining_path = rp[last, rp.length]
      always{yield rp[1, last-1]}
    elsif (len = rp.length) > 1
      @remaining_path = ""
      always{yield rp[1, len]}
    end
  end
end