提交 ab529c89 编写于 作者: Y Yves Senn

Merge pull request #14642 from tgxworld/fix_notifications_not_unsubscribing

Fix subscriptions not being unsubscribed.
......@@ -17,8 +17,9 @@ def setup_subscriptions
@_templates = Hash.new(0)
@_layouts = Hash.new(0)
@_files = Hash.new(0)
@_subscribers = []
ActiveSupport::Notifications.subscribe("render_template.action_view") do |_name, _start, _finish, _id, payload|
@_subscribers << ActiveSupport::Notifications.subscribe("render_template.action_view") do |_name, _start, _finish, _id, payload|
path = payload[:layout]
if path
@_layouts[path] += 1
......@@ -28,7 +29,7 @@ def setup_subscriptions
end
end
ActiveSupport::Notifications.subscribe("!render_template.action_view") do |_name, _start, _finish, _id, payload|
@_subscribers << ActiveSupport::Notifications.subscribe("!render_template.action_view") do |_name, _start, _finish, _id, payload|
path = payload[:virtual_path]
next unless path
partial = path =~ /^.*\/_[^\/]*$/
......@@ -41,7 +42,7 @@ def setup_subscriptions
@_templates[path] += 1
end
ActiveSupport::Notifications.subscribe("!render_template.action_view") do |_name, _start, _finish, _id, payload|
@_subscribers << ActiveSupport::Notifications.subscribe("!render_template.action_view") do |_name, _start, _finish, _id, payload|
next if payload[:virtual_path] # files don't have virtual path
path = payload[:identifier]
......@@ -53,8 +54,9 @@ def setup_subscriptions
end
def teardown_subscriptions
ActiveSupport::Notifications.unsubscribe("render_template.action_view")
ActiveSupport::Notifications.unsubscribe("!render_template.action_view")
@_subscribers.each do |subscriber|
ActiveSupport::Notifications.unsubscribe(subscriber)
end
end
def process(*args)
......
......@@ -235,7 +235,8 @@ def view
:@options,
:@test_passed,
:@view,
:@view_context_class
:@view_context_class,
:@_subscribers
]
def _user_defined_ivars
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册