From e9b649b3455c63859f1b865a8684607d6ff5b050 Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Tue, 21 Jan 2020 15:09:22 -0500 Subject: [PATCH] Fix Liquid::Template inheritance (#1227) self.class.default_resource_limits would return `nil` in a subclass, since the attribute isn't set on subclasses. --- lib/liquid/template.rb | 5 ++--- test/unit/template_unit_test.rb | 7 +++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 4cdf837..a15d3e6 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -119,14 +119,13 @@ module Liquid # To enable profiling, pass in profile: true as an option. # See Liquid::Profiler for more information def parse(source, options = {}) - template = Template.new - template.parse(source, options) + new.parse(source, options) end end def initialize @rethrow_errors = false - @resource_limits = ResourceLimits.new(self.class.default_resource_limits) + @resource_limits = ResourceLimits.new(Template.default_resource_limits) end # Parse source code. diff --git a/test/unit/template_unit_test.rb b/test/unit/template_unit_test.rb index 4e02c2d..b756694 100644 --- a/test/unit/template_unit_test.rb +++ b/test/unit/template_unit_test.rb @@ -77,4 +77,11 @@ class TemplateUnitTest < Minitest::Test ensure Template.tags.delete('fake') end + + class TemplateSubclass < Liquid::Template + end + + def test_template_inheritance + assert_equal("foo", TemplateSubclass.parse("foo").render) + end end