Method: Grape::Router#compile!

Defined in:
lib/grape/router.rb

#compile!Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/grape/router.rb', line 29

def compile!
  return if compiled
  @union = Regexp.union(@neutral_regexes)
  @neutral_regexes = nil
  self.class.supported_methods.each do |method|
    routes = map[method]
    @optimized_map[method] = routes.map.with_index do |route, index|
      route.index = index
      Regexp.new("(?<_#{index}>#{route.pattern.to_regexp})")
    end
    @optimized_map[method] = Regexp.union(@optimized_map[method])
  end
  @compiled = true
end