Revert "removing crazy finalizer code until there is proof that we need it"

This reverts commit a40e3c1a96.
This commit is contained in:
José Valim 2010-09-30 11:40:51 +02:00
parent 6b248f6ea5
commit 6a55ca346e
1 changed files with 11 additions and 0 deletions

View File

@ -101,6 +101,16 @@ module ActionView
attr_reader :source, :identifier, :handler, :virtual_path, :formats,
:original_encoding
# This finalizer is needed (and exactly with a proc inside another proc)
# otherwise templates leak in development.
Finalizer = proc do |method_name, mod|
proc do
mod.module_eval do
remove_possible_method method_name
end
end
end
def initialize(source, identifier, handler, details)
@source = source
@identifier = identifier
@ -245,6 +255,7 @@ module ActionView
begin
mod.module_eval(source, identifier, 0)
ObjectSpace.define_finalizer(self, Finalizer[method_name, mod])
method_name
rescue Exception => e # errors from template code