diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index a4895d82..19c2bfa3 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -93,6 +93,8 @@ module Liquid context = case args.first when Liquid::Context args.shift + when Liquid::Drop + Context.new(args.shift, instance_assigns, registers, @rethrow_errors) when Hash Context.new([args.shift, assigns], instance_assigns, registers, @rethrow_errors, @resource_limits) when nil diff --git a/test/liquid/template_test.rb b/test/liquid/template_test.rb index 6fb68e8c..5207f189 100644 --- a/test/liquid/template_test.rb +++ b/test/liquid/template_test.rb @@ -1,5 +1,15 @@ require 'test_helper' +class TemplateContextDrop < Liquid::Drop + def before_method(method) + method + end + + def foo + 'foo' + end +end + class TemplateTest < Test::Unit::TestCase include Liquid @@ -120,4 +130,11 @@ class TemplateTest < Test::Unit::TestCase assert t.resource_limits[:render_score_current] > 0 assert t.resource_limits[:render_length_current] > 0 end + + def test_can_use_drop_as_context + t = Template.new + drop = TemplateContextDrop.new + assert_equal 'foo', t.parse('{{foo}}').render(drop) + assert_equal 'bar', t.parse('{{bar}}').render(drop) + end end # TemplateTest