Merge pull request #10446 from dasch/instrument-template-compilation

Instrument template compilation
This commit is contained in:
Rafael Mendonça França 2013-05-06 18:31:01 -07:00
commit b8577bb673

@ -138,7 +138,7 @@ def supports_streaming?
# we use a bang in this instrumentation because you don't want to
# consume this in production. This is only slow if it's being listened to.
def render(view, locals, buffer=nil, &block)
ActiveSupport::Notifications.instrument("!render_template.action_view", virtual_path: @virtual_path, identifier: @identifier) do
instrument("!render_template") do
compile!(view)
view.send(method_name, locals, buffer, &block)
end
@ -245,7 +245,9 @@ def compile!(view) #:nodoc:
mod = view.singleton_class
end
compile(view, mod)
instrument("!compile_template") do
compile(view, mod)
end
# Just discard the source if we have a virtual path. This
# means we can get the template back.
@ -335,5 +337,10 @@ def method_name #:nodoc:
def identifier_method_name #:nodoc:
inspect.gsub(/[^a-z_]/, '_')
end
def instrument(action, &block)
payload = { virtual_path: @virtual_path, identifier: @identifier }
ActiveSupport::Notifications.instrument("#{action}.action_view", payload, &block)
end
end
end