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