aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-09-08 19:42:20 -0700
committerJeremy Kemper <jeremy@bitsweat.net>2008-09-08 19:42:20 -0700
commitfd71a1a354f96a74556346920ff61e80b91d8af0 (patch)
tree79eb944b06c2970ac6f0ea45183df40a5e2ce99a
parent3c658512a1fb561743bf626b9655c86765510f06 (diff)
downloadrails-fd71a1a354f96a74556346920ff61e80b91d8af0.tar.gz
rails-fd71a1a354f96a74556346920ff61e80b91d8af0.tar.bz2
rails-fd71a1a354f96a74556346920ff61e80b91d8af0.zip
Remove recognized_optimized method before redefining it
-rw-r--r--actionpack/lib/action_controller/routing/recognition_optimisation.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/routing/recognition_optimisation.rb b/actionpack/lib/action_controller/routing/recognition_optimisation.rb
index 306219a431..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)
@@ -149,12 +152,22 @@ module ActionController
end
def clear_recognize_optimized!
- instance_eval %{
+ remove_recognize_optimized!
+
+ class << self
def recognize_optimized(path, environment)
write_recognize_optimized!
recognize_optimized(path, environment)
end
- }, __FILE__, __LINE__
+ end
+ end
+
+ def remove_recognize_optimized!
+ if respond_to?(:recognize_optimized)
+ class << self
+ remove_method :recognize_optimized
+ end
+ end
end
end
end