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 end
def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_registers = {}, static_environments = {}) def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_registers = {}, static_environments = {})
@environments = [environments] @environments = environments.is_a?(Array) ? environments : [environments]
@environments.flatten!
@static_environments = [static_environments].flat_map(&:freeze).freeze @static_environments = [static_environments].flat_map(&:freeze).freeze
@scopes = [(outer_scope || {})] @scopes = [(outer_scope || {})]
@registers = registers @registers = registers
+3 -3
View File
@@ -183,11 +183,11 @@ module Liquid
c c
when Liquid::Drop when Liquid::Drop
drop = args.shift 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 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 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 else
raise ArgumentError, "Expected Hash or Liquid::Context as parameter" raise ArgumentError, "Expected Hash or Liquid::Context as parameter"
end end