diff options
| author | Pratik Naik <pratiknaik@gmail.com> | 2008-09-10 19:06:59 +0100 |
|---|---|---|
| committer | Pratik Naik <pratiknaik@gmail.com> | 2008-09-10 19:06:59 +0100 |
| commit | 6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3 (patch) | |
| tree | 059a4da48e9d4ec113c7df2bf915e83244ea3820 /actionpack/lib/action_controller/routing | |
| parent | d0a2b849f469469a1b189b4d077a95f35e31d65a (diff) | |
| parent | c19c0e7872e65094b14bc08e24d19eebd9d1562a (diff) | |
| download | rails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.tar.gz rails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.tar.bz2 rails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.zip | |
Merge commit 'mainstream/master'
Diffstat (limited to 'actionpack/lib/action_controller/routing')
| -rw-r--r-- | actionpack/lib/action_controller/routing/recognition_optimisation.rb | 22 | ||||
| -rw-r--r-- | actionpack/lib/action_controller/routing/route_set.rb | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/routing/recognition_optimisation.rb b/actionpack/lib/action_controller/routing/recognition_optimisation.rb index 6d54d0334c..4935432d87 100644 --- a/actionpack/lib/action_controller/routing/recognition_optimisation.rb +++ b/actionpack/lib/action_controller/routing/recognition_optimisation.rb @@ -134,6 +134,9 @@ module ActionController def write_recognize_optimized! tree = segment_tree(routes) body = generate_code(tree) + + remove_recognize_optimized! + instance_eval %{ def recognize_optimized(path, env) segments = to_plain_segments(path) @@ -147,6 +150,25 @@ module ActionController end }, __FILE__, __LINE__ end + + def clear_recognize_optimized! + remove_recognize_optimized! + + class << self + def recognize_optimized(path, environment) + write_recognize_optimized! + recognize_optimized(path, environment) + end + end + end + + def remove_recognize_optimized! + if respond_to?(:recognize_optimized) + class << self + remove_method :recognize_optimized + end + end + end end end end diff --git a/actionpack/lib/action_controller/routing/route_set.rb b/actionpack/lib/action_controller/routing/route_set.rb index 9d48f289db..ff448490e9 100644 --- a/actionpack/lib/action_controller/routing/route_set.rb +++ b/actionpack/lib/action_controller/routing/route_set.rb @@ -195,7 +195,7 @@ module ActionController self.routes = [] self.named_routes = NamedRouteCollection.new - write_recognize_optimized! + clear_recognize_optimized! end # Subclasses and plugins may override this method to specify a different @@ -217,7 +217,7 @@ module ActionController @routes_by_controller = nil # This will force routing/recognition_optimization.rb # to refresh optimisations. - @compiled_recognize_optimized = nil + clear_recognize_optimized! end def install_helpers(destinations = [ActionController::Base, ActionView::Base], regenerate_code = false) |
