From c0aab820ed0bdc356f528bf1515773d0d3371a19 Mon Sep 17 00:00:00 2001 From: Justin Li Date: Wed, 12 Nov 2014 00:05:01 -0500 Subject: [PATCH] Lazily load profiler hooks --- lib/liquid.rb | 5 ++++- lib/liquid/profiler.rb | 4 ++++ lib/liquid/profiler/hooks.rb | 6 ++++++ lib/liquid/template.rb | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/liquid.rb b/lib/liquid.rb index af38cd4..cacb0d8 100644 --- a/lib/liquid.rb +++ b/lib/liquid.rb @@ -41,6 +41,10 @@ module Liquid singleton_class.send(:attr_accessor, :cache_classes) self.cache_classes = true + + def self.load_profiler_hooks + require 'liquid/profiler/hooks' + end end require "liquid/version" @@ -75,4 +79,3 @@ require 'liquid/token' Dir[File.dirname(__FILE__) + '/liquid/tags/*.rb'].each { |f| require f } require 'liquid/profiler' -require 'liquid/profiler/hooks' diff --git a/lib/liquid/profiler.rb b/lib/liquid/profiler.rb index 912804d..a90c303 100644 --- a/lib/liquid/profiler.rb +++ b/lib/liquid/profiler.rb @@ -70,6 +70,10 @@ module Liquid end end + def self.hooks_loaded + false + end + def self.profile_token_render(token) if Profiler.current_profile && token.respond_to?(:render) Profiler.current_profile.start_token(token) diff --git a/lib/liquid/profiler/hooks.rb b/lib/liquid/profiler/hooks.rb index 8a6e808..fc2736a 100644 --- a/lib/liquid/profiler/hooks.rb +++ b/lib/liquid/profiler/hooks.rb @@ -1,4 +1,10 @@ module Liquid + class Profiler + def self.hooks_loaded + true + end + end + class BlockBody def render_token_with_profiling(token, context) Profiler.profile_token_render(token) do diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 8862564..d143dfd 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -250,6 +250,8 @@ module Liquid def with_profiling if @profiling && !@options[:included] + Liquid.load_profiler_hooks unless Profiler.hooks_loaded + @profiler = Profiler.new @profiler.start