mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
Move start of profiling to a Document#render_to_output_buffer patch
This commit is contained in:
@@ -42,7 +42,7 @@ module Liquid
|
||||
end
|
||||
|
||||
def render(context)
|
||||
@body.render(context)
|
||||
render_to_output_buffer(context, +'')
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -14,6 +14,14 @@ module Liquid
|
||||
end
|
||||
BlockBody.prepend(BlockBodyProfilingHook)
|
||||
|
||||
module DocumentProfilingHook
|
||||
def render_to_output_buffer(context, output)
|
||||
return super unless context.profiler
|
||||
context.profiler.profile { super }
|
||||
end
|
||||
end
|
||||
Document.prepend(DocumentProfilingHook)
|
||||
|
||||
module ContextProfilingHook
|
||||
attr_accessor :profiler
|
||||
|
||||
|
||||
@@ -199,9 +199,7 @@ module Liquid
|
||||
|
||||
begin
|
||||
# render the nodelist.
|
||||
with_profiling(context) do
|
||||
@root.render_to_output_buffer(context, output || +'')
|
||||
end
|
||||
@root.render_to_output_buffer(context, output || +'')
|
||||
rescue Liquid::MemoryError => e
|
||||
context.handle_error(e)
|
||||
ensure
|
||||
@@ -224,11 +222,6 @@ module Liquid
|
||||
Tokenizer.new(source, @line_numbers)
|
||||
end
|
||||
|
||||
def with_profiling(context)
|
||||
return yield unless context.profiler
|
||||
context.profiler.profile { yield }
|
||||
end
|
||||
|
||||
def apply_options_to_context(context, options)
|
||||
context.add_filters(options[:filters]) if options[:filters]
|
||||
context.global_filter = options[:global_filter] if options[:global_filter]
|
||||
|
||||
Reference in New Issue
Block a user