Avoid deep flatten

This commit is contained in:
Mike Angell
2019-09-17 02:30:20 +10:00
parent 740241a997
commit 3bf8470a49
2 changed files with 4 additions and 6 deletions
+1 -3
View File
@@ -21,9 +21,7 @@ module Liquid
end
def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_registers = {}, static_environments = {})
@environments = [environments]
@environments.flatten!
@environments = environments.is_a?(Array) ? environments : [environments]
@static_environments = [static_environments].flat_map(&:freeze).freeze
@scopes = [(outer_scope || {})]
@registers = registers
+3 -3
View File
@@ -183,11 +183,11 @@ module Liquid
c
when Liquid::Drop
drop = args.shift
drop.context = Context.new([drop, assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits)
drop.context = Context.new([drop, assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits)
when Hash
Context.new([args.shift, assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits)
Context.new([args.shift, assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits)
when nil
Context.new([assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits)
Context.new([assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits)
else
raise ArgumentError, "Expected Hash or Liquid::Context as parameter"
end