From 1e8c081b428268ddb8bd23492236e65f2fee8a18 Mon Sep 17 00:00:00 2001 From: Florian Weingarten Date: Fri, 31 May 2013 09:41:59 -0400 Subject: [PATCH] Create new resource_limits hash on Template initialization --- lib/liquid/template.rb | 3 ++- test/liquid/template_test.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 10a7804..a4895d8 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -50,6 +50,7 @@ module Liquid # creates a new Template from an array of tokens. Use Template.parse instead def initialize + @resource_limits = {} end # Parse source code. @@ -88,7 +89,7 @@ module Liquid # def render(*args) return '' if @root.nil? - + context = case args.first when Liquid::Context args.shift diff --git a/test/liquid/template_test.rb b/test/liquid/template_test.rb index 9a04e88..6fb68e8 100644 --- a/test/liquid/template_test.rb +++ b/test/liquid/template_test.rb @@ -112,4 +112,12 @@ class TemplateTest < Test::Unit::TestCase assert_equal "Liquid error: Memory limits exceeded", t.render() assert t.resource_limits[:reached] end + + def test_resource_limits_hash_in_template_gets_updated_even_if_no_limits_are_set + t = Template.parse("{% for a in (1..100) %} {% assign foo = 1 %} {% endfor %}") + t.render() + assert t.resource_limits[:assign_score_current] > 0 + assert t.resource_limits[:render_score_current] > 0 + assert t.resource_limits[:render_length_current] > 0 + end end # TemplateTest