Changeset 8674
- Timestamp:
- 01/19/08 05:25:20 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionpack/CHANGELOG
r8669 r8674 1 1 *SVN* 2 3 * Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 [oleganza] 2 4 3 5 * Introduce TemplateFinder to handle view paths and lookups. #10800 [Pratik Naik] trunk/actionpack/lib/action_controller/routing.rb
r8652 r8674 8 8 require 'action_controller/routing/builder' 9 9 require 'action_controller/routing/route_set' 10 require 'action_controller/routing/recognition_optimisation' 10 11 11 12 module ActionController trunk/actionpack/lib/action_controller/routing/route_set.rb
r8652 r8674 209 209 @combined_regexp = nil 210 210 @routes_by_controller = nil 211 # This will force routing/recognition_optimization.rb 212 # to refresh optimisations. 213 @compiled_recognize_optimized = nil 211 214 end 212 215 … … 380 383 381 384 def recognize_path(path, environment={}) 382 routes.each do |route| 383 result = route.recognize(path, environment) and return result 384 end 385 386 allows = HTTP_METHODS.select { |verb| routes.find { |r| r.recognize(path, :method => verb) } } 387 388 if environment[:method] && !HTTP_METHODS.include?(environment[:method]) 389 raise NotImplemented.new(*allows) 390 elsif !allows.empty? 391 raise MethodNotAllowed.new(*allows) 392 else 393 raise RoutingError, "No route matches #{path.inspect} with #{environment.inspect}" 394 end 385 raise "Not optimized! Check that routing/recognition_optimisation overrides RouteSet#recognize_path." 395 386 end 396 387