Merge pull request #1376 from Shopify/support-app-liquid-context

Use the same context class for isolated subcontexts for the require tag
This commit is contained in:
Dylan Thacker-Smith
2020-12-14 12:12:46 -05:00
committed by GitHub
+5 -3
View File
@@ -18,8 +18,8 @@ module Liquid
attr_accessor :exception_renderer, :template_name, :partial, :global_filter, :strict_variables, :strict_filters attr_accessor :exception_renderer, :template_name, :partial, :global_filter, :strict_variables, :strict_filters
# rubocop:disable Metrics/ParameterLists # rubocop:disable Metrics/ParameterLists
def self.build(environments: {}, outer_scope: {}, registers: {}, rethrow_errors: false, resource_limits: nil, static_environments: {}) def self.build(environments: {}, outer_scope: {}, registers: {}, rethrow_errors: false, resource_limits: nil, static_environments: {}, &block)
new(environments, outer_scope, registers, rethrow_errors, resource_limits, static_environments) new(environments, outer_scope, registers, rethrow_errors, resource_limits, static_environments, &block)
end end
def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_environments = {}) def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_environments = {})
@@ -44,6 +44,8 @@ module Liquid
self.exception_renderer = Liquid::RAISE_EXCEPTION_LAMBDA self.exception_renderer = Liquid::RAISE_EXCEPTION_LAMBDA
end end
yield self if block_given?
# Do this last, since it could result in this object being passed to a Proc in the environment # Do this last, since it could result in this object being passed to a Proc in the environment
squash_instance_assigns_with_environments squash_instance_assigns_with_environments
end end
@@ -135,7 +137,7 @@ module Liquid
def new_isolated_subcontext def new_isolated_subcontext
check_overflow check_overflow
Context.build( self.class.build(
resource_limits: resource_limits, resource_limits: resource_limits,
static_environments: static_environments, static_environments: static_environments,
registers: StaticRegisters.new(registers) registers: StaticRegisters.new(registers)